【问题标题】:How to solve the Two doorway and one camera problem?如何解决两门一摄像头的问题?
【发布时间】:2021-07-21 08:23:42
【问题描述】:

假设一个房间有两个门道和一台摄像机,该摄像机仅观察人们通过其中一个门道进出。描述一种算法方法来识别通过摄像头门口离开的个人是否早先通过同一门口进入。您将如何开发它以确保强大的性能?

我猜它可以通过堆栈或队列来解决。

对此的任何帮助将不胜感激。

【问题讨论】:

  • “相机门道”相机门道非相机门道有区别吗?
  • 算法实际上应该做什么?数一数从同一扇门进出的人数?给他们起名字?输入是如何组织的?它是按时间间隔给出的,还是一次性给出的? ...ETC。这个问题需要更具体。其次,您应该添加解决它的尝试,并描述您遇到问题的位置(错误输出?错误?无限循环?)。提供输入和预期输出的示例。
  • 我看不出堆栈或队列有什么帮助,因为人们可以以相对于进入的任意顺序离开。为什么不只是一个由人键入的哈希集,记录他们是否通过观察到的门进入并检查他们何时离开?
  • 旁注:如果它是单个摄像头,您必须将离开的人的后视图与他们的正面(正面)视图相关联以“识别”该人。哦,还有一个有趣的情况要考虑:假设有人离开房间并转头向后看。只是因为有人说了一些有趣的话。您不必将面部视图与进入房间的动作混淆......
  • 我们不会为你做所有的功课,只会帮你做。向我们展示您的代码并专注于您遇到的特定问题。告诉我们您已经了解的内容,您遇到的困难,以及what you've tried

标签: algorithm queue stack


【解决方案1】:
  • 制作进入摄像头门的人员的哈希图。
  • 注册他们。
  • 如果有人离开摄像头门,请检查收银机,看看他们是否进入了同一扇门。
  • 从登记册中删除现有人员。

伪代码

dict entered = {}

on enter:
  entered.add(person)

on exit:
  if entered.find(person)
    print "Person entered and exited at the same door"
    entered.remove(person)

因此,如果此人在摄像头门上两次进入,他们只会被注册一次,因为他们一定是从另一扇门上退出的。

注意,如果一个人进入摄像头门,离开另一扇门,然后重新进入另一扇门并走出摄像头门,它将被记录为好像他进出摄像头门一样。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多