Readme Update

This commit is contained in:
ken4647 2022-10-23 13:07:21 +08:00
parent ab64f31b08
commit d6e0318f91
1 changed files with 34 additions and 1 deletions

View File

@ -2,7 +2,34 @@
## 程序余API介绍
>主要的程序接口API全部位于detect.py和param.py两个文件中。
>主要的程序接口API全部位于detect.py和param.py两个文件中。在输入接口 `detect(self,imgs:torch.Tensor) -> list`的输入变量类型是torch的张量类型可以通过opencv的`cv2.imread()`或者`capture.read()`读取得到numpy数组(array)类型,然后通过`torch.Tensor()`或者`torchvision.transforms`进行类型转换。图片尺寸必须是方形即W=H,如果不是建议先通过resize和pad操作进行变换如果是单张图片输入模型前必须扩充维数可以使用Tensor的`unsqueeze(dim=0)`方法进行(即扩充第一维度),实现的伪代码如下:
```python
raw_img = cv2.imread(path_src) # 读取单张图片path_src处填写图片路径
raw_transform = transforms.Compose([transforms.ToPILImage(),
transforms.Resize((360,640)),
transforms.Pad((0,(640-360)//2)),
transforms.ToTensor()])
return raw_transform(raw_img).unsqueeze(dim=0)
```
>如果是读取视频只需按opencv读取视频的方法进行即可:
```python
capture = cv2.VideoCapture(path_src) # 读取摄像头为cv2.VideoCapture(index),index是相机索引通常为0即可读取视频文件时path_src填写路径即可
raw_transform = transforms.Compose([transforms.ToPILImage(),
transforms.Resize((360,640)),
transforms.Pad((0,(640-360)//2)),
transforms.ToTensor()]) # 预先组合好的变换函数
ret,frame = capture.read()
while ret is not None:
frame_tensor = raw_transform(frame).unsqueeze(dim=0) # 由于输入的是单张图片需要在dim=0进行维数扩充由(C,H,W)到(1,C,H,W),总尺寸大小其实不会发生改变
# your coder for detection
# ...
ret,frame = capture.read()
capture.release()
```
### 检测模块detect.py
@ -88,3 +115,9 @@ if __name__ == '__main__':
### 输出图片
![avatar](result.png)
### 参考链接
[YOLOv7官方实现-github](https://github.com/WongKinYiu/yolov7)
[YOLOv7论文-arxiv](https://arxiv.org/abs/2207.02696)