This commit is contained in:
vany5921
2020-09-25 18:55:09 +08:00
11 changed files with 336 additions and 0 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

@@ -55,6 +55,21 @@
<img src="assets\img\quick_start\timer_cam\camera_tool_07.webp">
## APP
>In network mode, you can also use the mobile version of the APP to take pictures and view monitoring
<div class="files_download">
<p class="item">
<a href="https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/software/TimerCAM-App-Android.apk">
<img src="/image/base/Windows_logo.webp" width="50">
<span class="item-title">Android</span>
</a>
</p>
</div>
<script>
anchor_search();
scrollFunc();
+153
View File
@@ -29,6 +29,8 @@ V-Function is a series of **visual recognition** functional firmware developed b
<el-tag onclick="page_move('barcode')">BarCode</el-tag>
<el-tag onclick="page_move('datamatrixcode')">DatamatrixCode</el-tag>
<el-tag onclick="page_move('apriltagcode')">ApriltagCode</el-tag>
<el-tag onclick="page_move('tag-reader')">Tag Reader</el-tag>
<el-tag onclick="page_move('line-tracker')">Line Tracker</el-tag>
</div>
</el-card>
@@ -598,6 +600,157 @@ V-Function is a series of **visual recognition** functional firmware developed b
}
```
### Tag Reader
>Detect the label card of the screen and return the binary sequence。
<img src="assets\img\quick_start\v_function\tag_reader.webp" width="30%">
>Program block introduction
- `init`
+ initialization
- `Get total number`
+ Number of tag cards recognized on the current screen
- `Get binstr`
+ The binary data string of the recognition result. When there are multiple cards, the predetermined subscript replaces the different card content.
- `Get code`
+ The content binary code of the uint64_t type, the maximum encoding of this key is 64-bit (8 x 8) TAG.
- `Get tag location
+ Coordinates and length and width information of the label card
```
00000000 00000000
00111100 00@@@@00 @@@@
01000010 0@0000@0 @ @
01000010 -> 0@0000@0 -> @ @
01011010 0@0@@0@0 @ @@ @
01000010 0@0000@0 @ @
01000010 0@0000@0 @ @
00000000 00000000
```
>Program example: Identify card information and display it on the screen
<img src="assets\img\quick_start\v_function\tag_reader_example_01.webp" width="50%">
### Tag Reader-Packet format
#### Receive JSON
```
{
"FUNC": "TAG READER V2.0",
"TOTAL": 1,
"0": {
"x": 113,
"y": 65,
"w": 117,
"h": 105,
"p0x": 113, // p0x ~ p3y: TAG Coordinates of 4 vertices
"p0y": 77,
"p1x": 211,
"p1y": 65,
"p2x": 230,
"p2y": 156,
"p3x": 127,
"p3y": 170,
"rotation": 8, // Relative rotation angle of TAG
"rows": 8, // Number of TAG lines (this value does not include positioning boxes)
"columns": 8, // The number of TAG columns (this value does not include the positioning box)
"size": 64, // TAG data length of the actual content, the value = the number of rows of the content * the number of columns of the content = (rows) * (columns)
"code": "0x003C42425A424200", // The content binary code of uint64_t type, the maximum encoding of this key is 64-bit (8 x 8) TAG
"binstr": "0000000000111100010000100100001001011010010000100100001000000000" //The string form of binary data, this key value can encode TAG of any length and width
}
}
```
### Line Tracker
>Detect the specified color line in the screen and return the offset angle.
<img src="assets\img\quick_start\v_function\line_tracker.webp" width="30%">
>Program block introduction
- `init`
+ initialization
- `Get angle`
+ Get line offset angle
- `Set color by L-min L-max A-min A-max B-min B-max`
+ Set the LAB threshold for tracking (the color value of the LAB color space, colors outside this range will be filtered)
- `Get code`
+ The content binary code of the uint64_t type, the maximum encoding of this key is 64-bit (8 x 8) TAG.
- `Set line area weight0 weight1 weight2`
+ Set the weight of the line area: the three weights correspond to the contribution of the three areas in the figure to the angle. For example, if the value of weight_2 is set larger, the angle will change more drastically when turning.
<img src="assets\img\quick_start\v_function\line_tracker_03.webp">
#### Set LAB threshold
>Refer to the method of using the LAB color picking tool in the `color tracking` function above, shoot the lines and scenes that need to be tracked, and record the LAB values generated below, and configure and use them in UIFlow.
<img src="assets\img\quick_start\v_function\line_tracker_02.webp" width="50%">
>Program example: Obtain the line offset angle and display it on the screen
<img src="assets\img\quick_start\v_function\line_tracker_example_01.webp" width="50%">
<img src="assets\img\quick_start\v_function\line_tracker_example_02.webp" width="50%">
### Line Tracker-Packet format
#### Receive JSON
```
{
"FUNC": "LINE TRACKER V1.0",
"angle": 3.8593475818634033 //Angle of car turning
}
```
#### Send JSON
```
{
"LINE TRACKER": 1.0, //Function mark, not default
"thr_w": 20, //Can be default bounding box width threshold[3,200]
"thr_h": 20, //Can be the default bounding box length threshold, [3,200]
"stepx": 1, //can default X scan interval, [0, 40], set to 0 to turn off bounding box detection
"stepy": 2, //Y scan interval can be defaulted, [0, 40], set to 0 to turn off bounding box detection
"merge": 10, //default bounding box merge threshold, [0, 40]
"Lmin": 0, //The lower limit of L threshold can be defaulted [0, 100]
"Lmax": 0, //The upper limit of L threshold can be defaulted [0, 100]
"Amin": 0, //The lower limit of A threshold can be defaulted [0, 255]
"Amax": 0, //The upper limit of A threshold can be defaulted [0, 255]
"Bmin": 0, //Default B threshold lower limit [0, 255]
"Bmax": 0, //The upper limit of B threshold can be defaulted [0, 255]
"weight_0": 0.1, // default weight
"weight_1": 0.3, // default weight
"weight_2": 0.7 // Default weight
}
```
## More Information
<a href="https://github.com/m5stack/Vfunction"><el-button type="primary">Github</el-button></a>
@@ -54,6 +54,20 @@
<img src="assets\img\quick_start\timer_cam\camera_tool_07.webp">
## 手机版APP
>网络模式下,还可以使用手机版APP进行图片拍摄与查看监控
<div class="files_download">
<p class="item">
<a href="https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/software/TimerCAM-App-Android.apk">
<img src="/image/base/Windows_logo.webp" width="50">
<span class="item-title">Android</span>
</a>
</p>
</div>
<script>
anchor_search();
scrollFunc();
+154
View File
@@ -29,6 +29,8 @@ V-Function是由M5Stack团队针对V系列设备开发的多个**视觉识别**
<el-tag onclick="page_move('条形码识别')">条形码识别</el-tag>
<el-tag onclick="page_move('datamatrix码识别')">Datamatrix码识别</el-tag>
<el-tag onclick="page_move('apriltag码识别')">Apriltag码识别</el-tag>
<el-tag onclick="page_move('自定义标签识别')">自定义标签识别</el-tag>
<el-tag onclick="page_move('巡线')">巡线</el-tag>
</div>
</el-card>
@@ -596,6 +598,158 @@ V-Function是由M5Stack团队针对V系列设备开发的多个**视觉识别**
}
```
### 自定义标签识别
>检测画面种的标签卡,并返回二进制序列。
<img src="assets\img\quick_start\v_function\tag_reader.webp" width="30%">
>程序块介绍
- `init`
+ 初始化
- `Get total number`
+ 当前画面识别到的标签卡数量
- `Get binstr`
+ 识别结果的二进制数据的字符串,当有多个卡片时,传入下标可选择不同的卡片内容。
- `Get code`
+ uint64_t类型的内容二进制代码,本键值最大编码64位(8 x 8)的TAG。
- `Get tag location
+ 标签卡的坐标与长宽信息
```
00000000 00000000
00111100 00@@@@00 @@@@
01000010 0@0000@0 @ @
01000010 -> 0@0000@0 -> @ @
01011010 0@0@@0@0 @ @@ @
01000010 0@0000@0 @ @
01000010 0@0000@0 @ @
00000000 00000000
```
>程序案例:识别卡片信息,并显示在屏幕上
<img src="assets\img\quick_start\v_function\tag_reader_example_01.webp" width="50%">
### 自定义标签识别-数据包格式
#### 回传JSON
```
{
"FUNC": "TAG READER V2.0",
"TOTAL": 1,
"0": {
"x": 113,
"y": 65,
"w": 117,
"h": 105,
"p0x": 113, // p0x ~ p3y: TAG 4个顶点的坐标
"p0y": 77,
"p1x": 211,
"p1y": 65,
"p2x": 230,
"p2y": 156,
"p3x": 127,
"p3y": 170,
"rotation": 8, // TAG 的相对旋转角度
"rows": 8, // TAG 的行数(本数值不含定位框)
"columns": 8, // TAG 的列数(本数值不含定位框)
"size": 64, // TAG 实际内容的数据长度,该值 = 内容的行数 * 内容的列数 = (rows) * (columns)
"code": "0x003C42425A424200", // uint64_t类型的内容二进制代码,本键值最大编码64位(8 x 8)的TAG
"binstr": "0000000000111100010000100100001001011010010000100100001000000000" //二进制数据的字符串形式,本键值可以编码任意长宽的TAG
}
}
```
### 巡线
>检测画面中指定的颜色线条,并返回偏移角度。
<img src="assets\img\quick_start\v_function\line_tracker.webp" width="30%">
>程序块介绍
- `init`
+ 初始化
- `Get angle`
+ 获取线条偏移角度
- `Set color by L-min L-max A-min A-max B-min B-max`
+ 设置追踪的LAB阈值(LAB颜色空间的颜色值,在该范围外的颜色将会被过滤)
- `Get code`
+ uint64_t类型的内容二进制代码,本键值最大编码64位(8 x 8)的TAG。
- `Set line area weight0 weight1 weight2`
+ 设置线条区域权重:三个权重分别对应图中三个区域对角度的贡献值。比如把weight_2的值设置的大一些,则当转弯时角度变化将更加剧烈。
<img src="assets\img\quick_start\v_function\line_tracker_03.webp">
#### 设置LAB阈值
>参考上方`颜色追踪`功能中的LAB取色工具的使用方法,拍摄需要巡线的线条与场景,并记录下方生成的LAB数值,在UIFlow中配置使用。
<img src="assets\img\quick_start\v_function\line_tracker_02.webp" width="50%">
>程序案例:获取线条偏移角度,并显示在屏幕上
<img src="assets\img\quick_start\v_function\line_tracker_example_01.webp" width="50%">
<img src="assets\img\quick_start\v_function\line_tracker_example_02.webp" width="50%">
### 巡线-数据包格式
#### 回传JSON
```
{
"FUNC": "LINE TRACKER V1.0",
"angle": 3.8593475818634033 //小车转弯的角度
}
```
#### 设置JSON
```
{
"LINE TRACKER": 1.0, //功能标记,不可缺省
"thr_w": 20, //可缺省 边界框宽阈值,[3,200]
"thr_h": 20, //可缺省 边界框长阈值,[3,200]
"stepx": 1, //可缺省 X扫描间隔,[0, 40],设置为0则关闭边界框检测
"stepy": 2, //可缺省 Y扫描间隔,[0, 40],设置为0则关闭边界框检测
"merge": 10, //可缺省 边界框合并阈值,[0, 40]
"Lmin": 0, //可缺省 L阈值下限 [0, 100]
"Lmax": 0, //可缺省 L阈值上限 [0, 100]
"Amin": 0, //可缺省 A阈值下限 [0, 255]
"Amax": 0, //可缺省 A阈值上限 [0, 255]
"Bmin": 0, //可缺省 B阈值下限 [0, 255]
"Bmax": 0, //可缺省 B阈值上限 [0, 255]
"weight_0": 0.1, // 可缺省 权重
"weight_1": 0.3, // 可缺省 权重
"weight_2": 0.7 // 可缺省 权重
}
```
## 更多内容
<a href="https://github.com/m5stack/Vfunction"><el-button type="primary">Github</el-button></a>