1 安装PPOCRLabel标注工具


        PPOCRLabel是一款适用于OCR领域的半自动化图形标注工具,内置PPOCR模型对数据自动标注和重新识别。使用python3和pyqt5编写,支持矩形框标注和四点标注模式,导出格式可直接用于PPOCR检测和识别模型的训练。所以第一步就是要克隆PaddleOCR的项目,这样才能依托这个项目进行无线套娃式的半自动标注。


2 克隆Paddleocr项目


        首先要克隆paddleocr项目,项目地址。打开这个项目就可以看到如下图的开源项目,可以看到项目里面就内置了PPOCRLabel这个项目。我们点击上述的克隆按键,就可以将这个项目整个下载下来了。



        pycharm和paddlepaddle深度学习环境的配置可以参考我的这一篇博客利用Anaconda安装pytorch和paddle深度学习环境+pycharm安装—-免额外安装CUDA和cudnn(适合小白的保姆级教学)。 将下载的项目解压好,然后用一款IDE打开,我用的是pycharm这款IDE。如下图所示。



         然后在paddlepadle环境下安装pyqt5,可以用pip安装,我是在pycharm终端(Terminal)中安装的,执行 pip install pyqt5 这个命令就可以了,就会帮我们装上了。如下图所示:



         我的已经装好了,执行完命令就会出现如下的结果。



3  打开PPOCRLabel工具


        在pycharm的终端(Terminal),将目录切换到PPOCRLabel这个目录下,执行


cd PPOCRLabel这个命令就会到该目录下面,可以看到,已经进入到这个目录下面。



         执行python PPOCRLabel.py —lang ch这个命令就可以打开标注工具了。如下图所示:




4 标注步骤


4.1 操作步驟


  1. 打开文件夹:在菜单栏点击 “文件” - “打开目录” 选择待标记图片的文件夹.
  2. 自动标注:点击 ”自动标注“,使用PPOCR超轻量模型对图片文件名前图片状态为 “X” 的图片进行自动标注。
  3. 手动标注:点击 “矩形标注”(推荐直接在英文模式下点击键盘中的 “W”),用户可对当前图片中模型未检出的部分进行手动绘制标记框。点击键盘Q,则使用四点标注模式(或点击“编辑” - “四点标注”),用户依次点击4个点后,双击左键表示标注完成。
  4. 标记框绘制完成后,用户点击 “确认”,检测框会先被预分配一个 “待识别” 标签。
  5. 重新识别:将图片中的所有检测画绘制/调整完成后,点击 “重新识别”,PPOCR模型会对当前图片中的所有检测框重新识别。
  6. 内容更改:双击识别结果,对不准确的识别结果进行手动更改。
  7. 确认标记:点击 “确认”,图片状态切换为 “√”,跳转至下一张。
  8. 删除:点击 “删除图像”,图片将会被删除至回收站。
  9. 保存结果:用户可以通过菜单中“文件-保存标记结果”手动保存,同时也可以点击“文件 - 自动保存标记结果”开启自动保存。手动确认过的标记将会被存放在所打开图片文件夹下的_Label.txt_中。在菜单栏点击 “文件” - “保存识别结果”后,会将此类图片的识别训练数据保存在_crop_img_文件夹下,识别标签保存在_rec_gt.txt_中。

4.2 注意


        PPOCRLabel以文件夹为基本标记单位,打开待标记的图片文件夹后,不会在窗口栏中显示图片,而是在点击 “选择文件夹” 之后直接将文件夹下的图片导入到程序中。


        图片状态表示本张图片用户是否手动保存过,未手动保存过即为 “X”,手动保存过为 “√”。点击 “自动标注”按钮后,PPOCRLabel不会对状态为 “√” 的图片重新标注。


        点击“重新识别”后,模型会对图片中的识别结果进行覆盖。因此如果在此之前手动更改过识别结果,有可能在重新识别后产生变动。


        PPOCRLabel产生的文件放置于标记图片文件夹下,包括一下几种,请勿手动更改其中内容,否则会引起程序出现异常。


文件名 说明
Label.txt 检测标签,可直接用于PPOCR检测模型训练。用户每保存5张检测结果后,程序会进行自动写入。当用户关闭应用程序或切换文件路径后同样会进行写入。
fileState.txt 图片状态标记文件,保存当前文件夹下已经被用户手动确认过的图片名称。
Cache.cach 缓存文件,保存模型自动识别的结果。
rec_gt.txt 识别标签。可直接用于PPOCR识别模型训练。需用户手动点击菜单栏“文件” - “保存识别结果”后产生。
crop_img 识别数据。按照检测框切割后的图片。与rec_gt.txt同时产生。

4.3 快捷键


快捷键 说明
Ctrl + shift + R 对当前图片的所有标记重新识别
W 新建矩形框
Q 新建四点框
Ctrl + E 编辑所选框标签
Ctrl + R 重新识别所选标记
Ctrl + C 复制并粘贴选中的标记框
Ctrl + 鼠标左键 多选标记框
Backspace 删除所选框
Ctrl + V 确认本张图片标记
Ctrl + Shift + d 删除本张图片
D 下一张图片
A 上一张图片
Ctrl++ 缩小
Ctrl— 放大
↑→↓← 移动标记框

5 项目实战


        按照以上标注步骤打开需要标注的文件,我的项目是对车牌号的识别和检测,打开后如图。



        我们来按标注步骤标注第一张图。


        首先按下快捷键,快捷键w(矩形标注框,从左边点击,就会出现一个框框,拖动框框覆盖需要标注的区域)。快捷键q(四点标注,要顺时针点四个点,第四个点双击左键就可以让一个框框闭合,这个正对不规则的四边形标注场景,或者是一个位置是斜的矩形)。


        由于车牌是一个方方正正的矩形,所以选用矩形框标注就好了,按下快捷键w。用框框将需要标注的地方框住,就会出现如下的对话框,我们可以在框框中自己填写车牌号码。也可以利用这款标注工具的半标注功能,点击ok。



      点击ok之后,右边的框框出现这个框框的识别结果是待识别,点击重新识别的按钮,标注工具就会自动识别图片中的结果,如果识别结果有错误,我们也可以点击识别结果进行更改(标注好了一定要点确定)。不得不说,百度这个工具做的比其他的工具厉害。可以帮我们省了很多力气。


   


6  大批量自动标注


        由于我们的图片经常是成千上万,一张张图片标注起来很是枯燥和费劲。所以PPLabel这款标注工具可以帮助我们大批量自动标注,PPLabel自动帮我们标注好了以后,我们只需要检查每一张照片的标注结果,如果有标注错误的地方(或者自动标注了我们不需要的地方和文字),我们更改一下,然后确认每一张照片就行。


        点击标注工具左下方的自动标注按钮。就会自动标注,自动标注结束以后点击ok按钮就可以了。




         自动标注结束以后,标注结果没有自动保存,自动标注工具只是帮我们自动标注,但是结果还有待我们确定,所以我们需要对每一张图片确定才可以保存标注结果。确认完每张识别结果以后左边的文件列表前面出现√这个符号就说明这个图片标注完了,结果并保存了。然后按如下右图点击保存识别结果(不点击这项的话就不会保存识别结果,就不会出现识别结果的文件和相应的标签),该标注工具标注的文件是用来训练文本检测和识别的模型的)。



        按上述步骤标注完了,在图片文件中会产生如下几个文件。crop_img里面的内容就是识别数据。


        


文件名 说明
Label.txt 检测标签,可直接用于PPOCR检测模型训练。用户每保存5张检测结果后,程序会进行自动写入。当用户关闭应用程序或切换文件路径后同样会进行写入。
fileState.txt 图片状态标记文件,保存当前文件夹下已经被用户手动确认过的图片名称。
Cache.cach 缓存文件,保存模型自动识别的结果。
rec_gt.txt 识别标签。可直接用于PPOCR识别模型训练。需用户手动点击菜单栏“文件” - “保存识别结果”后产生。
crop_img 识别数据。按照检测框切割后的图片。与rec_gt.txt同时产生。

         至此PPLabel自动标注工具的讲解自此已经结束。不得不说这款工具的确是一款很不错的工具。