在使用AWS成功训练目标检测模型后,如何使用该模型对SageMaker视频进行实时目标检测?
发布于 2021-02-28 00:15:45
用于实时对象检测的一种解决方案如下。
训练模型后,将模型上载到S3。您可以使用以下命令进行检查
$aws sagemaker list-training-jobs --region us-east-1
然后,您需要在亚马逊SageMaker端点上验证您训练过的模型。您可以使用以下命令来完成此操作:
object_detector = estimator.deploy(initial_instance_count = 1,
instance_type = 'ml.g4dn.xlarge')
将模型附加到端点后,您将需要创建一个API,该API允许用户将输入传递到经过训练的模型以进行推理。您可以使用Serverless来完成此操作。使用Serverless,您可以创建一个模板,该模板将创建一个Lambda函数,如handler.py
和serverless.yml,这些函数需要根据应用程序的操作方式进行配置。确保在serverless.yml
中指定端点名称、SAGEMAKER_ENDPOINT_NAME
和Resource: ${ssm:sagemakerarn}
。这是需要传入的允许策略资源(AWS Systems Manager代理)参数。在您的lambda函数中,确保您调用了SageMaker端点。
在这里,您现在可以部署API以进行实时检测:
serverless deploy -v
最后,您可以使用curl调用您的API。
有关详细的演练,请参阅here。
发布于 2021-02-20 16:58:13
您尚未指定将在何处托管模型:在AWS上、移动设备或其他设备上。然而,一般的方法是,假设CNN处理图像,您的模型将一次消耗一帧。您尚未指定编程语言或库,因此以下是psuedocode中的一般过程:
while True:
video_frame = get_next_rtsp_frame()
detections = model.predict(video_frame)
# There might be multiple objects detected, handle each one:
for detected_object in detections:
(x1, y1, x2, y2, score) = detected_object # bounding box
# use the bounding box information, say to draw a box on the image
实时视频流需求的一个挑战是避免延迟,这取决于您的平台和您在循环中进行的处理类型。您可以跳过帧或不缓冲丢失的帧来解决此问题。
https://stackoverflow.com/questions/66291913
复制相似问题