使用LabelImg註釋條形碼對象以進行機器學習教程

Dynamsoft Barcode Reader SDK一款多功能的條碼讀取控件,只須要幾行代碼就能夠將條碼讀取功能嵌入到Web或桌面應用程序。這能夠節省數月的開發時間和成本。能支持多種圖像文件格式以及從攝像機或掃描儀獲取的DIB格式。使用Dynamsoft Barcode Reader SDK,你能夠建立強大且實用的條形碼掃描儀軟件,以知足你的業務需求。python

下載Dynamsoft Barcode Reader最新版【慧都網】git

LabelImg是使用Python和Qt5編寫的免費開源圖像註釋工具。它支持主流機器學習框架一般採用的Pascal VOC格式和Yolo格式。若是您對條形碼對象檢測感興趣,則可使用該工具用邊界框註釋不一樣的條形碼符號。在本文中,我將分享如何從Google快速下載一堆條形碼圖像,以及如何使用Dynamsoft Barcode Reader SDK自動添加標籤名稱。github

圖片下載

首先,咱們須要圖像。咱們如何得到一堆具備相同分類的圖像?
有一個方便的Python庫google_images_download。
pip install google_images_download
當我運行庫時,我發現它一般沒法正常工做。它老是沒法下載任何圖像。該問題已在https://github.com/hardikvasa/google-images-download/issues/331上說起。幸運的是,有人提供了可行的解決方法。咱們可使用已修復問題的分支存儲庫:
git clone https://github.com/Joeclinton1/google-images-download.git
cd google-images-download && python setup.py install
根據在線文檔,咱們能夠編寫一個簡單的Python腳原本下載圖像,以下所示:
from google_images_download import google_images_download
import argparsecanvas

ap = argparse.ArgumentParser()
ap.add_argument("-k", "--keywords", required=True,
help="The keywords/key phrases you want to search for.")
ap.add_argument("-l", "--limit", required=True,
help="The number of images that you want to download.")
args = vars(ap.parse_args())數組

response = google_images_download.googleimagesdownload()
arguments = {"keywords":args["keywords"],"limit":args["limit"],"print_urls":True}
paths = response.download(arguments)
print(paths)
將Python腳本保存到google-image-downloader.py。
讓咱們從Google下載10張PDF417圖像:
python3 google-image-downloader.py -k pdf417 -l 10框架

條形碼對象註釋

條形碼圖像準備就緒後,咱們就能夠開始爲條形碼加標籤了。機器學習

第一步是獲取LabelImg存儲庫的源代碼:
git clone https://github.com/tzutalin/labelImg.git
使用LabelImg,咱們能夠經過眼睛標記大多數對象。可是,您可能不知道全部條形碼符號。爲了精確快速地命名條形碼對象,咱們可使用Dynamsoft Barcode Reader做爲輔助工具:
pip install dbr
初始化Dynamsoft條碼閱讀器很是簡單:
from dbr import *
reader = BarcodeReader()
轉到labelImg.py中的函數newShape(self)。完成爲對象繪製邊界框後,將觸發該功能。
下一步是從當前形狀獲取座標,該座標存儲爲畫布中形狀數組的最後一個元素:
shape = self.canvas.shapes[-1]
形狀有四個點。爲了提取座標值併爲Dynamsoft Barcode Reader設置區域值,咱們使用左上角和右下角:
reader.reset_runtime_settings()
shape = self.canvas.shapes[-1]
points = shape.points
settings = reader.get_runtime_settings()
settings.region_bottom = round(points[2].y())
settings.region_left = round(points[0].x())
settings.region_right = round(points[2].x())
settings.region_top = round(points[0].y())
reader.update_runtime_settings(settings)
以後,咱們能夠經過調用Python條形碼解碼API來獲取區域內的條形碼信息:
try:
text_results = reader.decode_file(self.filePath)
if text_results != None:
for text_result in text_results:
print("Barcode Format :")
print(text_result.barcode_format_string)
self.prevLabelText = text_result.barcode_format_string
print("Barcode Text :")
print(text_result.barcode_text)
print("Localization Points : ")
print(text_result.localization_result.localization_points)
print("-------------")
except BarcodeReaderError as bre:
print(bre)
保存labelImg.py文件並運行程序:
python3 labelImg.py
當您爲條形碼對象建立一個矩形框時,它將自動用相應的條形碼類型填充標籤對話框。
使用LabelImg註釋條形碼對象以進行機器學習教程
想要購買Dynamsoft Barcode Reader正版受權,或瞭解更多產品信息請點擊【諮詢在線客服】ide

本文章轉載自【慧都科技】evget歡迎任何形式的轉載,但請務必註明出處、不得修改原文相關連接,尊重他人勞動成果函數

相關文章
相關標籤/搜索