视频结构化——原子能力解析

视频结构化是指对视频数据进行结构化处理,通过对原视频进行智能分析,提取出视频中的关键信息,以标签文本的形式进行描述。

常见的视频结构化主要是对视频中的人、车、物等进行文本标签描述。其中常见的人结构化处理,主要是对人的属性进行输出,比如人的性别、年龄、穿戴、衣服颜色等标签化的输出。

如下:

如上所示,其是基于图片进行识别,如何实现视频中的实时显示呢,需要对视频进行抽帧处理,对每一帧处理,最后合成视频中的实时显示效果。

其中对人的机构化处理,还有对人的行为轨迹进行分析,其原子角度也是基于视频帧处理,识别视频中的人体,并做相似度比对,保证同一个人在视频中的行为轨迹是不会重复也不会和其他人进行错乱。

车辆结构化,主要是对车的车牌号、车辆类型、车辆的颜色等信息进行结构化输出,简单的信息如下:

物的结构化,主要是对视频中的物体进行结构标签输出,对视频帧的识别汇集成视频中的动态标签,并在后台对置信度进行判断,淘汰掉多余的标签,用以保证识别的准确性。

基于图片的识别的实现部分代码如下:

import com.aliyun.tea.*;

import com.aliyun.imagerecog20190930.*;//图像识别

import com.aliyun.imagerecog20190930.models.*;

import com.aliyun.facebody20191230.*;//人体识别

import com.aliyun.facebody20191230.models.*;

import com.aliyun.ocr20191230.*;//文字识别

import com.aliyun.ocr20191230.models.*;

import com.aliyun.teaopenapi.*;

import com.aliyun.teaopenapi.models.*;

import com.aliyun.teautil.*;

import com.aliyun.teautil.models.*;

public class Sample {

    /**

     * 使用AK&SK初始化账号Client

     * @param accessKeyId

     * @param accessKeySecret

     * @return Client

     * @throws Exception

     */

    public static com.aliyun.ocr20191230.Client createClient(String accessKeyId, String accessKeySecret) throws Exception {

        Config config = new Config()

                // 您的 AccessKey ID

                .setAccessKeyId(accessKeyId)

                // 您的 AccessKey Secret

                .setAccessKeySecret(accessKeySecret);

        // 访问的域名

        config.endpoint = "ocr.cn-shanghai.aliyuncs.com";

        return new com.aliyun.ocr20191230.Client(config);

    }

    public static void main(String[] args_) throws Exception {

        java.util.List<String> args = java.util.Arrays.asList(args_);

        com.aliyun.ocr20191230.Client client = Sample.createClient("accessKeyId", "accessKeySecret");

        RecognizeLicensePlateRequest recognizeLicensePlateRequest = new RecognizeLicensePlateRequest();

        RuntimeOptions runtime = new RuntimeOptions();

        try {

            // 复制代码运行请自行打印 API 的返回值

            client.recognizeLicensePlateWithOptions(recognizeLicensePlateRequest, runtime);

        } catch (TeaException error) {

            // 如有需要,请打印 error

            com.aliyun.teautil.Common.assertAsString(error.message);

        } catch (Exception _error) {

            TeaException error = new TeaException(_error.getMessage(), _error);

            // 如有需要,请打印 error

            com.aliyun.teautil.Common.assertAsString(error.message);

        }       

    }

}

猜你喜欢

转载自blog.csdn.net/xiayexuyou/article/details/126504794