1.打标
1.1打标软件下载
打标软件是需要使用MVTec Deep Learning Tool (system),免费下载,去官网注册即可。
MVTec Deep Learning Tool 23.08 EA out now!: MVTec Software
1.2打标软件使用过程
先调整语言,右上角齿轮,设置语言
新建项目,选deepocr
添加图像
点击"图像",切换到打标流程
鼠标先拉一条横线,再移动横线,最后拉出一个框,下方会自动识别一个结果,根据实际结果调整结果
把所有图片打标完成,然后导出数据集
至此达标完成
1.3打标导出,导入到官方例子
deep_ocr_recognition_training_workflow.hdev
找到该工程的路径我这里是 C:\Users\Administrator\AppData\Roaming\MVTec\HALCON-23.05-Progress\examples\hdevelop\OCR\Deep-OCR
将生成的数据集放到工程目录
打开程序,将数据集路径改成刚生成的数据集
根据实际图片数量修改batch size,我这里是5张,这里是批处理数量,图片量大时可以不和图片数量对等
MaxBatchSizeTraining := 5
修改迭代次数
NumEpochs := 500
2.开始训练
运行程序,不断的F5就行
可以观察下loss和accuracy的曲线,最终loss我这里降低到了0.1以下
3.应用训练模型
得到训练模型之后,新建一个程序,就在\OCR\Deep-OCR目录下,将以下代码填入
这里的testimages是需要自己加入的测试图片,放置位置在C:\Users\Administrator\AppData\Roaming\MVTec\HALCON-23.05-Progress\examples\images
create_deep_ocr ([], [], DeepOcrHandle)
*
* The finetuned model needs to be specified as the recognition
* component.
set_deep_ocr_param (DeepOcrHandle, 'recognition_model', 'ocr_recognition_data_test/model_testbest.hdl')
*
* Additionally we make sure that the runtime related parameters
* are set optimally for inference.
set_deep_ocr_param (DeepOcrHandle, 'recognition_batch_size', 1)
set_deep_ocr_param (DeepOcrHandle, 'recognition_optimize_for_inference', 'true')
dev_open_window (0, 0, 500, 200, 'black', WindowHandle)
list_image_files ('test_images', 'default', [], ImageFiles)
tuple_shuffle (ImageFiles, ImageFiles)
*
NumImages := 10
for I := 0 to min2(NumImages,|ImageFiles|) - 1 by 1
read_image (Image, ImageFiles[I])
apply_deep_ocr (Image, DeepOcrHandle, 'recognition', DeepOcrResult)
dev_display_deep_ocr_results (Image, WindowHandle, DeepOcrResult, [], [])
stop ()
endfor
dev_disp_text ('Press F5 to end this example', 'window', 'bottom', 'right', 'black', [], [])
stop ()
dev_close_window ()
*
*
* *** 6.) REMOVE FILES ***
clean_up_output (OutputDir, RemoveOutputs)
然后运行,可以看到识别结果