<p>转自:<a href="https://blog.csdn.net/djstavaV/article/details/86883931">https://blog.csdn.net/djstavaV/article/details/86883931</a></p>
<h1>原文出处: <a href="https://xugaoxiang.com/2019/12/16/hyperlpr/">https://xugaoxiang.com/2019/12/16/hyperlpr/</a></h1>
<h3><a name="t1"></a><a id="_1"></a>软硬件环境</h3>
<ul><li>Intel Xeon CPU E5-1607 v4 @ 3.10GHz</li><li>GTX 1070 Ti 32G</li><li>ubuntu 18.04 64bit</li><li>anaconda with python 3.6</li><li>tensorflow-gpu</li><li>keras</li><li>opencv 3.4.3</li></ul>
<h3><a name="t2"></a><a id="HyperLPR_10"></a>HyperLPR简介</h3>
<p><code>HyperLPR</code>是一个基于深度学习的高性能中文车牌识别开源项目,地址是 <a href="https://github.com/zeusees/HyperLPR">https://github.com/zeusees/HyperLPR</a>,由<code>python</code>语言编写,同时还支持<code>Linux</code>、<code>Android</code>、<code>iOS</code>、<code>Windows</code>等各主流平台。它拥有不错的识别率,目前已经支持的车牌类型包括</p>
<ul><li> 单行蓝牌</li><li> 单行黄牌</li><li> 新能源车牌</li><li> 白色警用车牌</li><li> 使馆/港澳车牌</li><li> 教练车牌</li></ul>
<h3><a name="t3"></a><a id="HyperLPR_21"></a>HyperLPR的检测流程</h3>
<ul><li>使用<code>opencv</code>的<code>HAAR Cascade</code>检测车牌大致位置</li><li><code>Extend</code>检测到的大致位置的矩形区域</li><li>使用类似于<code>MSER</code>的方式的多级二值化和<code>RANSAC</code>拟合车牌的上下边界</li><li>使用<code>CNN Regression</code>回归车牌左右边界</li><li>使用基于纹理场的算法进行车牌校正倾斜</li><li>使用<code>CNN</code>滑动窗切割字符</li><li>使用<code>CNN</code>识别字符</li></ul>
<h3><a name="t4"></a><a id="HyperLPR_31"></a>HyperLPR安装</h3>
<pre class="blockcode"><code>git clone https://github.com/zeusees/HyperLPR.git
cd HyperLPR
</code></pre>
<ul><li>1</li><li>2</li></ul>
<p>项目同时支持<code>python2</code>和<code>python3</code>,但是在目录结构上有所区分,<code>hyperlpr</code>和<code>heperlpr_py3</code>,我的环境是<code>python3</code>和<code>anaconda</code>,直接将<code>hyperlpr_py3</code>文件夹拷贝到<code>~/anaconda3/lib/python3.6/site-packages/</code>就可以了</p>
<h3><a name="t5"></a><a id="_39"></a>测试效果</h3>
<p><a id="_41"></a>图片</p>
<pre class="blockcode"><code>from hyperlpr_py3 import pipline as pp
import cv2
import click
@click.command()
@click.option('--image', help = 'input image')
def main(image):
img = cv2.imread(image)
img,res = pp.SimpleRecognizePlateByE2E(img)
print(res)
if __name__ == '__main__':
main()
</code></pre>
<ul><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li><li>14</li></ul>
<p>使用项目自带的测试图片进行测试,由于拍摄角度原因,某些识别结果是错误的。</p>
<pre class="blockcode"><code>longjing@FR:~/Work/gogs/LPR$ python test_image.py --image demo_images/demo1.png
Using TensorFlow backend.
2018-12-18 15:28:27.628782: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
2018-12-18 15:28:27.765931: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1432] Found device 0 with properties:
name: GeForce GTX 1070 Ti major: 6 minor: 1 memoryClockRate(GHz): 1.683
pciBusID: 0000:03:00.0
totalMemory: 7.93GiB freeMemory: 7.15GiB
2018-12-18 15:28:27.765967: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1511] Adding visible gpu devices: 0
2018-12-18 15:28:28.030061: I tensorflow/core/common_runtime/gpu/gpu_device.cc:982] Device interconnect StreamExecutor with strength 1 edge matrix:
2018-12-18 15:28:28.030097: I tensorflow/core/common_runtime/gpu/gpu_device.cc:988] 0
2018-12-18 15:28:28.030105: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1001] 0: N
2018-12-18 15:28:28.030306: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1115] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 6899 MB memory) -> physical GPU (device: 0, name: GeForce GTX 1070 Ti, pci bus id: 0000:03:00.0, compute capability: 6.1)
res 闽R6G81
川01C 0.6178697198629379
res 1035
吉晋K03 0.5994847059249878
res K032301
K030X 0.824301564693451
res JK0330
贵晋JK0330 0.9602108970284462
res 闽CR8W
CRM1 0.6328456625342369
res 1NX888
云A赣X881 0.5053929431097848
res 桂ANX889
桂ANX889 0.984427673476083
res 贵JD1687
贵JD1687 0.9756925020899091
res 贵JC3732
贵JC3732 0.8844872457640511
res 1T687
L87 0.6002845267454783
[[[], '川01C', 0.6178697198629379], [[], '吉晋K03', 0.5994847059249878], [[], 'K030X', 0.824301564693451], [[], '贵晋JK0330', 0.9602108970284462], [[], 'CRM1', 0.6328456625342369], [[], '云A赣X881', 0.5053929431097848], [[], '桂ANX889', 0.984427673476083], [[], '贵JD1687', 0.9756925020899091], [[], '贵JC3732', 0.8844872457640511], [[], 'L87', 0.6002845267454783]
</code></pre>
<ul><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li><li>14</li><li>15</li><li>16</li><li>17</li><li>18</li><li>19</li><li>20</l |
|