0

目前正在研究执照检测系统,需要一些关于如何进行的指导。我可以捕获(通过视频播放)并在名为 OpenALPR 的开源库的帮助下将车牌直接显示到终端,现在的问题是它逐帧捕获,因此它多次捕获同一个车牌。我添加了一个跳帧变量,现在它跳过了我想要的帧数,但问题仍然存在。

此外,如果可能的话,我想区分不同的车牌,但不知道如何解决这个问题,我尝试使用基本的对象检测和检测,但惨遭失败。

下面是程序运行的图像,可以看到它检测到一个车牌并显示它的多个实例,现在的问题是我希望它移动到下一辆车并显示 Plate#1,不幸的是它没有并继续送入板#0 程序运行

程序运行

下面是实际帮助显示车牌文本的功能,第一行确实完成了所有工作。OpenALPR 非常强大。

results = alpr.recognize_ndarray(frame)         
    for i, plate in enumerate(results['results']):             
    best_candidate = plate['candidates'][0]             
    print('Plate #{}: {:} ({:}%)'.format(i, 
          best_candidate['plate'].upper(),   
          best_candidate['confidence']))

我想要一些关于如何解决这个问题的指导?这基本上是区分不同的车牌。

4

1 回答 1

0

这是一个没有通用解决方案的通用问题,因为它高度依赖于上下文。一些想法:

如果是视频源,您可以跟踪盘子的移动,当检测到另一个盘子时,轨道会“跳跃”。假设最大光流速度为 100 px/帧,如果它跳跃超过这个阈值,你可以假设它是一个新板。

根据您的视频质量和检测器,可能存在虚假跳跃,我会添加卡尔曼滤波器或任何简单的滤波器。

也许在一个盘子出现图像和下一个到达之间有一个最小的时间间隔。您可以使用时间阈值来触发“换板警报”事件。

于 2019-10-25T12:27:22.503 回答