forked from wffjwbbf/ComDesignProject
Readme Update
This commit is contained in:
parent
ab64f31b08
commit
d6e0318f91
35
README.md
35
README.md
|
|
@ -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__':
|
|||
### 输出图片
|
||||
|
||||

|
||||
|
||||
### 参考链接
|
||||
|
||||
[YOLOv7官方实现-github](https://github.com/WongKinYiu/yolov7)
|
||||
|
||||
[YOLOv7论文-arxiv](https://arxiv.org/abs/2207.02696)
|
||||
|
|
|
|||
Loading…
Reference in New Issue