from paddleocr import PaddleOCR, draw_ocr
import os
import cv2
from PIL import Image
import matplotlib.pyplot as plt# Paddleocr目前支持的多语言语种可以通过修改lang参数进行切换
# 例如`ch`, `en`, `fr`, `german`, `korean`, `japan`
ocr = PaddleOCR(use_angle_cls=True, lang="en")  # need to run only once to download and load model into memory# 一张图片
path = 'VINImages/SMALL'
# path = '../yolov5-mask-42-master/runs/detect/exp13'
# path = r"D:\BUFFER\Pycharm\RecognitionOCR\images\ROI_Images"
# path = r"D:\BUFFER\Pycharm\RecognitionOCR\images\rudeOCR"# 单张图片
# result = ocr.ocr(img_path, cls=True)# # # 文件夹所有图片
# path = r"D:\BUFFER\Pycharm\DectVIN\VINImages\BIG"def findVin_Index(vinSets):list_vin = []for i in vinSets:address_index = [x for x in range(len(vinSets)) if vinSets[x] == i]list_vin.append([i, address_index])dict_address = dict(list_vin)vin_index = []vin_value = []for key, value in dict_address.items():vin_index.append(len(value))vin_value.append(key)real_vin = vin_value[vin_index.index(max(vin_index))]#  for k in range(len(real_vin)):#      if real_vin[k] == 'I':#          real_vin[k] = '1'#      if real_vin[k] == 'o':#          real_vin[k] = '0'return real_vin,dict_address.get(real_vin)# possibleVIN = []
# scoresVin = []
for filename in os.listdir(path):  # listdir的参数是文件夹的路径img_path = path + '\\' + filename# print(filenames)img_orig = cv2.imread(img_path, 1)print(img_path)# 文件夹下所有图片result = ocr.ocr(img_path, cls=True)possibleVIN = []scoresVin = []# # 显示结果for line in result:# print(line)image = Image.open(img_path).convert('RGB')boxes = [line[0] for line in result]txts = [line[1][0] for line in result]scores = [line[1][1] for line in result]if len(txts[0]) == 17 and scores[0] > 0.98:possibleVIN.append(txts[0])scoresVin.append(scores[0])# im_show = draw_ocr(image, boxes, txts, scores, font_path='./fonts/simfang.ttf')# im_show = Image.fromarray(im_show)# plt.imshow(im_show)# plt.show()allScores = 0.0if possibleVIN:print("possibleVIN",possibleVIN)realvin, realvin_index = findVin_Index(possibleVIN)print("scoresVin", scoresVin)print("realvin_index",realvin_index)for vin_item in realvin_index:allScores = allScores + scoresVin[vin_item]# if allScores:#     realScore = allScores/len(realvin_index)#     # print("realvin_index", realvin_index)#     # print("realVin", realvin)#     print("real-score",realScore)cv2.putText(img_orig, (" %s, %0.5f" % (realvin, allScores/len(realvin_index))), (50, 50),cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 0, 0), 2)cv2.imshow("vin", img_orig)cv2.waitKey()# im_show.show()# im_show.save('res/result.jpg')

paddleocr识别VIN码相关推荐

  1. iOS 识别车辆vin码方法汇总,免费并且效果极佳识别速度极快OCR识别VIN码

    这里搜集的识别方案全都是基于OCR识别应用字母和数字,然后提取VIN吗的方案,免费,效果极佳,速度极快.方案各有优劣,请酌情考虑. 先上效果图: 方案一: 下载地址:https://github.co ...

  2. 车架号识别|Vin码识别介绍及APP嵌入集成解决方案

    车架号(VIN码)作为十七位的字母,究竟有什么奥秘呢?本文着重讲一下车架号(VIN码)的用途和OCR技术在VIN码(车架号)上的应用场景. 1.确认车辆身份,尤其在一些特殊情况下可以更准确的识别自己的 ...

  3. VIN码识别又叫车架号识别,OCR技术深度应用

    什么叫VIN码? VIN码又叫车架号也叫车辆识别代码,是制造厂为了识别而给一辆车指定的一组编号.由于VIN码的数字和英文字母是不断切换,共有十七个数字及字母组成的编码. 现在,通过自主研发的OCR技术 ...

  4. 使用汽车VIN码识别的好处有哪些

    VIN码识别,车架号识别 通常情况下,车架号VIN码作为唯一的汽车身份证,会常常被用到.VIN码识别(车架号识别)技术在这些活动中就显得不可或缺. 近年汽车后市场交易火爆,对汽车后市场从业人员来说需要 ...

  5. VIN码识别技术加速汽车后市场服务速度

    VIN码识别的应用 寒寒严冬,大雪已过,距离北方最冷的数九天也还有不到两个礼拜,做完一个哥们问我要车牌识别算法,说有项目需要算法,我简单了解后,按照他的具体需求给他免费测试.核心算法支持,等忙完后才想 ...

  6. 核心大小1M的VIN码OCR识别核心

    VIN码也就是车架号,车辆的身份证,是有17位数字和字母组成,和公民身份证一样,每个字段有每个字段的含义,这个全球通用的标准. 在国内好多行业进行公民身份证的登记,使得身份证识别得到了广泛应用,那么对 ...

  7. 一种Vin码扫描识别sdk技术

    一.Vin码扫描识别sdk技术扫描录入信息的产品背景 VIN码即车架号就是汽车的唯一的身份证,汽车从下线出厂.进4S店销售.行驶证登记造册.保险登记.车辆车检.车辆维修保养.车辆召回.车辆交易等直至车 ...

  8. Vin码/车架号扫描识别sdk技术

    一.Vin码扫描识别sdk技术扫描录入信息的产品背景 VIN码即车架号就是汽车的唯一的身份证,汽车从下线出厂.进4S店销售.行驶证登记造册.保险登记.车辆车检.车辆维修保养.车辆召回.车辆交易等直至车 ...

  9. 移动端车架号vin码识别SDK

    不知不觉中,人工智能已经从噱头逐渐变为现实,走进人们生活的方方面面. 作为车辆唯一身份证明,VIN码贯穿一辆车从生产出厂到报废的每一个环节:在你购买新车时,需要登记VIN码信息:在你维修保养的时候,需 ...

  10. 汽车VIN码OCR识别

    汽车VIN码OCR识别 关键词:汽车VIN码识别 移动端OCR识别 VIN码 VIN码即是车辆识别码的缩写,SEA标准规定:VIN码由17位字符组成,包含了车辆的生产厂家.年代.车型.发动机代码及组装 ...

最新文章

  1. 基于Clang的缓存型C++编译器Zapcc开源
  2. Javascript基础与面向对象基础~第六讲 Javascript中的事件机制
  3. IIS设置404页面图文教程(选择URL还是文件 )
  4. SSM项目使用GoEasy 实现web消息推送服务
  5. leetcode511. 游戏玩法分析 I(SQL)
  6. 读【36岁IT老人再次随笔】的读后感,你会哪些计算机语言?
  7. 【黑客】利用VBS脚本让QQ永远在线,等级速升
  8. sikuli+eclipse对于安卓app自动化测试的应用(第一次写博客,有些语言还不太专业,望海涵)...
  9. java读取movielens数据txt
  10. editormd支持上传视频
  11. 在龙芯3A3000上安装Debian 10
  12. java 代码加壳,专家和您一同谈谈java加壳的问题[Java编程]
  13. 计算机配置知识教学,电脑配置的基本知识
  14. DEV05 GBase 8a MPP Cluster 数据库性能优化
  15. 利用mysql物理文件(*.ibd,*.frm)回复数据
  16. 未来世界,已经不在遥远
  17. 傻瓜式免费自助建站系统,菜鸟建站理想工具
  18. Vue里面使用el-cascader 级联选择器 children为空 和获取value和label问题
  19. ☼ 什么是DST以及它对IT设备、软件的影响 ☼
  20. 超全!元器件封装查询图表(收藏)

热门文章

  1. C# TextBox输入数字 TextBox输入限制 TextBox输入字符 KeyPress
  2. php 5.4连接mysql_MySQL数据库之PHP5.4中mysql连接
  3. qt 分辨率问题 安卓_Qt for Android dp转换
  4. FindFirstFile和FindNextFile
  5. 类的虚函数表和虚函数在内存中的位置
  6. HBase 表修复在线方式和离线方式
  7. js时间和时间戳之间如何转换(汇总)
  8. 【27】Python100例基础练习题6
  9. Ubuntu 12.04下Proftpd FTP服务器配置
  10. 【转载】Tomcat内存溢出的原因及调试