你好呀,我是小智!这次国庆假期,你堵车了吗?
国庆大拥堵,是每个中国人都深有体会的“节日特色”。在这个时候,应急车道成了一些司机的“捷径”,特别是一些不守规矩的司机违规占用应急车道,导致本就拥堵的交通状况更加恶化。
在小米汽车推出时,有网友杜撰了一键AI智能举报违章功能的设想。虽然这个功能尚未在小米汽车上实现,但我们可以借助现有的AI技术,自己动手实现这样一个功能。本文将带你一步一步拆解这个功能的技术实现,并基于智谱大模型开放平台 bigmodel.cn实战,实现一键AI智能举报违章。
一键智能举报违章功能技术拆解与实战
语音实时对讲与唤醒视频记录
在汽车行驶过程中,驾驶员需要集中注意力驾驶,因此,一个能够通过语音指令启动的视频记录功能就显得尤为重要。这不仅能够记录下违章行为,还能在不干扰驾驶员的情况下,实现“一键举报”。
为了让大家有个直观的感受,我用智谱清言的视频通话功能做了下测试,视频如下:
违章行为发生的时间区间短,并且驾驶员发出指令时,往往违章行为已然发生。这就需要系统不仅能实时响应指令,并且对视频内容具备短期的记忆与理解能力,通过组合现有技术几乎是无法实现的。
❝目前国内做多模态大模型的厂家不少,但能够通过API的方式支持实时视频通话的,目前智谱是独一家!调研了解到GLM-4-Plus-VideoCall API不仅能够提供实时的视频通话功能,还能通过视频流理解对话当前的环境,确实是目前实现本需求的最优解。
以下为伪代码功能实现
# 定义违章检测函数
def detect_traffic_violations(voice_command):
# 获取当前时间戳
current_time = time_stamp_module.get_current_time()
# 根据语音指令,确定需要回溯的时间范围
time_range = time_stamp_module.calculate_time_range(voice_command)
# 使用视频分析模块检测违章行为
violations = video_call_api.analyze(video_record)
# 如果检测到违章行为
if violations:
# 获取违章类型和起始时间节点
violation_type, start_time = violations[0]['type'], violations[0]['start_time']
# 截取违章行为发生的视频片段
video_clip = video_call_api.get_video_clip(start_time, current_time)
# 输出违章类型和视频片段
return violation_type, video_clip
else:
return "No violations detected."
基于实时视频识别车辆违章情况
接下来,在上一阶段记录并提取到违章视频片段的基础上,我们需要一个能够实时识别车辆违章行为,并识别车牌号的系统。通常来说,我们可以使用计算机视觉技术,通过训练一个模型来识别常见的违章行为,例如占用应急车道、闯红灯等。
目前成熟的多模态大模型已经能较好理解和处理视频的内容,这里我们可以直接调用GLM-4V-Plus的api来实现我们的需求。
实现代码如下
from zhipuai import ZhipuAI
client = ZhipuAI(api_key="YOUR API KEY") # 填写您自己的APIKey
response = client.chat.completions.create(
model="glm-4v-plus", # 填写需要调用的模型名称
messages=[
{
"role": "user",
"content": [
{
"type": "video_url",
"video_url": {
"url" : "https://****/video/**.mp4"
}
},
{
"type": "text",
"text": "这是一个车辆违章记录的视频,请识别车辆的违章类别,以及违章车辆的车牌号"
}
]
}
]
)
print(response.choices[0].message)
自动调用违章上报接口上报违章情况
我们已经成功提取到车辆违章的所有相关信息,最后一步是将违章信息和关键帧通过API接口上报给相关部门。这一步骤需要与交通管理部门的系统对接,确保信息能够准确无误地传达。
为了实现这一功能,我们需要将模型的文字输出转换为具体的API请求,并将其发送到交通管理部门的API。针对这一需求,大模型已经提供了非常成熟的解决方案:Fucntion Calling。GLM-4-Plus提供了函数调用能力,我们可以利用这一能力构建一个违章上报Agent,实现违章信息的自动上报。
代码如下
from zhipuai import ZhipuAI
client = ZhipuAI(api_key="")
messages = []
tools = [{"type":"function","function":{"name":"traffic_violation","description":"举报交通违章","parameters":{"type":"object","properties":{"type":{"description":"违章类别","type":"string"},"vehicle":{"description":"车牌号","type":"string"}},"required":["type","vehicle"]}}}]
messages = []
messages.append({"role":"user","content":"违章类别:占用应急车道.\n违章车辆的车牌号:** **888"})
response = client.chat.completions.create(
model="glm-4-plus", # 填写需要调用的模型名称
messages=messages,
tools=tools,
)
print(response.choices[0].message)
messages.append(response.choices[0].message.model_dump())
实战总结
通过大模型提供的视频通话,视频理解,函数解析等多个方面的能力。我们主要实现了以下五个方面的功能需求:
1.语音实时对讲与唤醒视频记录 2.基于实时视频识别车辆违章情况 3.识别违章车辆车牌 4.自动从视频中截取违章情况关键帧 5.自动调用违章上报接口上报违章情况 结合车辆行驶的现实情况,通过GLM-4-Plus-VideoCall提供的实时视频通话能力,将以上所有能力集成,并最终实现了一键AI智能举报违章的能力。
❝当然只有代码,还无法达成我们的目标,搭载以上能力的智能摄像头硬件已经列入我的下一步的规划,到时候我会将方案整体开源,大家尽情期待!
结语
随着大模型与现实世界的交互能力的进一步增强,其应用场景将拓展到我们生活的方方面面,唯一缺乏的是我们自己的想象力! 通过今天的探索,我们不仅实现了一个一键AI智能举报违章的功能,更重要的是,我们看到了AI技术在社会治理中的潜力。未来,让我们继续发挥想象力,用技术为社会带来更多的便利和安全。
今天的内容就到这里,如果老铁觉得还行,可以来一波三连,感谢!