自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 资源 (1)
  • 收藏
  • 关注

原创 Analyzer

我们分析一下布控逻辑,就是admin端布控按钮按下后,admin会发起一个http请求/api/control/add,会触发Analyzer端的api_control_add函数,该函数解析http请求,将参数信息存到新建的control里,在调用scheduler的apiControlAdd函数。apiControlAdd函数会新建executor,该类持有control类的参数信息,该函数会新建多个线程,执行具体提的业务逻辑。对不同的请求地址做了映射,具体的执行函数在scheduler类里。

2024-06-25 14:12:33 145

原创 项目总体框架

当我们对某个视频或摄像头数据布控后,Analyzer端会向媒体服务器拉取所布控对象的流,并解码成图片信息上传到Algorithm端,Algorithm端检测后将检测结果返回Analyzer端。Analyzer端接收到结果后将结果合成视频流推流到媒体服务端。Admin端会拉取检测后的视频流进行显示。

2024-06-21 17:46:59 177

原创 Algorithm

29行从请求参数里获取经过base64编码的图片,34-37行将图片解码,40-43行调用yolo算法检测图片获得检测结果,并将检测结果封装到data里,data会返回给客户端。今天来分析Algorithm模块,这个模块的逻辑比较简单。我们可以将这个模块看成一个服务端,接收客户端发来的图片,使用yolo检测图片,将检测结果返回给客户端。该模块的主要逻辑就由如上的代码显示,第15行表示我们使用post方法访问/image/objectDetect地址时,将进入这个函数。

2024-06-19 15:03:19 146

原创 Admin

今天来分析下Admin模块,这个模块的入口是manage.py文件,作者建议的方式是使用命令行启动,为了方便调试分析,我们使用pycharm启动,我们需要在manage.py文件里添加一行代码然后就可以右击manage.py选择run启动项目后我们在浏览器进,登录进去后会看到如下界面。

2024-06-18 10:05:07 330

原创 跑起来再说

​最近在学习音视频相关知识,在b站找了找资料,发现好多都是讲理论,且都是纯讲ffmpeg原理,并没有将ffmepg集成到项目中使用。像我这样的小菜鸡,肯定不会深钻ffmpeg原理,主要是想学下ffmpeg的使用。刚好b站有位大佬开源了一个相关项目,使用ffmpeg进行视频推流,并采用yolo分析视频,感觉这个项目还不错,综合性比较强,于是乎并下载源码来学习学习。 b站大佬的源码地址下来后需要在下载第三方库解压,我这边已经集成好第三方库,下载后打开ide,配置好头文件和源文件后直接运行即可(源码地址)

2024-06-17 20:03:44 112

转载 扩展卡尔曼滤波

对信号进行滤波。

2023-12-05 11:23:57 176 1

转载 卡尔曼滤波的五大公式及python代码示例

转自。

2023-12-05 11:05:33 231 1

原创 static关键字

我们看两个例子:(1)变量不加 static 修饰#include <stdio.h>void test(){ int num = 0; num++; printf("%d ", num);}int main(){ int i = 0; for (i = 0; i < 10; i++) { test(...

2020-02-16 19:35:06 132

转载 线程间同步

文章目录线程间同步信号量信号量工作机制信号量控制块信号量的管理方式创建和删除信号量初始化和脱离信号量获取信号量无等待获取信号量释放信号量信号量应用示例信号量的使用场合线程同步锁中断与线程的同步资源计数互斥量互斥量工作机制互斥量控制块互斥量的管理方式创建和删除互斥量初始化和脱离互斥量获取互斥量释放互斥量互斥量应用示例互斥量的使用场合事件集事件集工作机制事件集控制块事件集的管理方式创建和删除事件集初始...

2020-01-30 15:18:35 1168

转载 时钟管理

时钟管理时间是非常重要的概念,和朋友出去游玩需要约定时间,完成任务也需要花费时间,生活离不开时间。操作系统也一样,需要通过时间来规范其任务的执行,操作系统中最小的时间单位是时钟节拍 (OS Tick)。本章主要介绍时钟节拍和基于时钟节拍的定时器,读完本章,我们将了解时钟节拍如何产生,并学会如何使用 RT-Thread 的定时器。时钟节拍任何操作系统都需要提供一个时钟节拍,以供系统处理所有和时...

2020-01-29 18:00:03 2922

原创 uboot启动流程(5)之board_init_f 函数详解

board_init_f 函数详解_main 中会调用 board_init_f 函数,board_init_f 函数主要有两个工作:①、初始化一系列外设,比如串口、定时器,或者打印一些消息等。②、初始化 gd 的各个成员变量,uboot 会将自己重定位到 DRAM 最后面的地址区域,也就是将自己拷贝到 DRAM 最后面的内存区域中。这么做的目的是给 Linux 腾出空间,防止 Linuxk...

2020-01-28 18:42:36 6074 3

原创 指针函数和函数指针

指针函数,简单的来说,就是一个返回指针的函数,其本质是一个函数,而该函数的返回值是一个指针。函数指针,其本质是一个指针变量,该指针指向这个函数。总结来说,函数指针就是指向函数的指针。int *fun(int x,int y); //指针函数int (*fun)(int x,int y); //函数指针...

2020-01-28 15:58:02 154

原创 指针数组和数组指针

指针数组的实质就是一个数组,只是这个数组中存在的所有元素是指针变量。(指针数组与数组没有区别)数组指针的实质是一个指针,指针指向的是一个数组。int *p[5]; //指针数组int (*p)[5]; //数组指针说明一下C语言运算符优先级:() > [] > *首先看int *p[5],[]优先级高,先与p结合成为一个数组,再由int *说明这是一个整型指针数组,它有n个...

2020-01-28 15:43:57 88

转载 线程管理

线程管理在日常生活中,我们要完成一个大任务,一般会将它分解成多个简单、容易解决的小问题,小问题逐个被解决,大问题也就随之解决了。在多线程操作系统中,也同样需要开发人员把一个复杂的应用分解成多个小的、可调度的、序列化的程序单元,当合理地划分任务并正确地执行时,这种设计能够让系统满足实时系统的性能及时间的要求,例如让嵌入式系统执行这样的任务,系统通过传感器采集数据,并通过显示屏将数据显示出来,在多线...

2020-01-28 13:51:40 537

原创 uboot启动流程(4)之s_init函数详解

在上一小节中,我们知道 lowlevel_init 函数后面会调用 s_init 函数,s_init 函数定义在文件arch/arm/cpu/armv7/mx6/soc.c 中,如下所示: soc.c 代码段808 void s_init(void)809 {810 struct anatop_regs *anatop = (struct anatop_regs*)AN...

2020-01-27 12:21:30 1552

原创 uboot启动流程(3)之lowlevel_init 函数详解

函数 lowlevel_init 在文件 arch/arm/cpu/armv7/lowlevel_init.S 中定义,内容如下: lowlevel_init.S 代码段14 #include <asm-offsets.h>15 #include <config.h>16 #include <linux/linkage.h>1718 E...

2020-01-27 12:01:39 2022

原创 uboot启动流程(2)之reset函数源码详解

reset 函数源码详解从 u-boot.lds 中我们已经知道了入口点是 arch/arm/lib/vectors.S 文件中的_start,代码如下: vectors.S 代码段38 /*39 *************************************************************40 *41 * Exception vectors...

2020-01-27 11:02:39 1147

原创 uboot启动流程(1)之链接脚本u-boot.lds详解

链接脚本 u-boot.lds 详解要分析 uboot 的启动流程,首先要找到“入口”,找到第一行程序在哪里。程序的链接是由链接脚本来决定的,所以通过链接脚本可以找到程序的入口。如果没有编译过 uboot 的话链接脚本为arch/arm/cpu/u-boot.lds。但是这个不是最终使用的链接脚本,最终的链接脚本是在这个链接脚本的基础上生成的。编译一下 uboot,编译完成以后就会在 uboo...

2020-01-26 22:12:19 2402

转载 内核基础

内核基础本章介绍 RT-Thread 内核基础,包括:内核简介、系统的启动流程及内核配置的部分内容,为后面的章节奠定基础。RT-Thread 内核的简单介绍,从软件架构入手讲解实时内核的组成与实现,这部分给初学者引入一些 RT-Thread 内核相关的概念与基础知识,让初学者对内核有初步的了解。学完本章,读者将会对 RT-Thread 内核有基本的了解,知道内核的组成部分、系统如何启动、内存分...

2020-01-26 14:46:44 438

ucos操作系统

μC/OS II(Micro-Controller Operating System Two)是一个可以基于ROM运行的、可裁剪的、抢占式、实时多任务内核,具有高度可移植性,特别适合于微处理器和控制器,适合很多商业操作系统性能相当的实时操作系统(RTOS)。为了提供最好的移植性能,μC/OS II最大程度上使用ANSI C语言进行开发,并且已经移植到近40多种处理器体系上,涵盖了从8位到64位各种CPU(包括DSP)。 μC/OS II可以简单的视为一个多任务调度器,在这个任务调度器之上完善并添加了和多任务操作系统相关的系统服务,如信号量、邮箱等。其主要特点有公开源代码,代码结构清晰、明了,注释详尽,组织有条理,可移植性好,可裁剪,可固化。内核属于抢占式,最多可以管理60个任务。从1992年开

2018-01-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除