A computer vision toolkit.
Project description
CVTools
这是一个用于常见计算机视觉任务的工具包,支持发布至 PyPI 并作为 Python 库或命令行工具使用。
文件与模块说明
所有核心代码均位于 src/cvkit 包内:
cvkit/inference: ONNX 模型推理模块。base_inference.py: 推理基类。yolo_inference.py: YOLO 模型推理。sam3_inference.py: SAM3 模型推理。tokenizer.py: SAM3 的文本编码器。image_processor.py: 图像处理器。
cvkit/utils: 通用工具模块。perspective_transformation.py: 图像透视变换工具。logger.py: 日志工具.data_define.py: 通用数据结构定义。rtsp_video.py: RTSP 视频拉流工具。
- 命令行工具 (CLI):
cvkit-color-to-gray: 将彩色图像转换为灰度图。cvkit-data-split: 随机拆分训练集和测试集(支持 YOLO 格式数据)。cvkit-random-selection: 从目录中随机选择并复制指定数量的文件。cvkit-show-yolo-obj: 可视化 YOLO 目标检测的 ONNX 模型推理标注结果。cvkit-show-yolo-seg: 可视化 YOLO 实例分割的 ONNX 模型推理标注结果。cvkit-video2image: 将视频文件转换为图像序列(支持选点和透视变换)。
安装说明
本工具包已支持通过 pip / uv 安装。您可以根据硬件环境选择不同的推理加速后端:
1. 基础安装(仅使用基础图像处理,不使用 ONNX 推理)
pip install cvkit-python
# 或者使用 uv
uv pip install cvkit-python
2. 按需安装硬件加速后端
- 使用 CPU 推理
pip install "cvkit-python[onnx-cpu]"
- 使用 GPU 推理(支持 TensorRT / CUDA)
pip install "cvkit-python[onnx-gpu]"
- 使用 SAM3 推理(安装额外文本编码依赖)
pip install "cvkit-python[onnx-gpu,sam]"
使用方法
作为命令行工具使用
安装后,您可以在终端中直接使用以下命令:
# 1. 批量图像转灰度
cvkit-color-to-gray -i ./input_dir -o ./output_dir --recursive
# 2. 随机拆分 YOLO 格式数据集
cvkit-data-split -i ./dataset_dir -o ./split_out --train_ratio 0.8 --val_ratio 0.1 --test_ratio 0.1
# 3. 随机抽取指定数量图片
cvkit-random-selection -i ./src_dir -o ./dst_dir -n 100 --model fixed
# 4. 可视化 YOLO 目标检测模型推理结果
cvkit-show-yolo-obj --model ./yolov8n.onnx -i ./images -o ./output_results
# 5. 可视化 YOLO 实例分割模型推理结果
cvkit-show-yolo-seg --model ./yolov8n-seg.onnx -i ./images -o ./output_results --conf 0.5
# 6. 视频提取帧(支持透视选点)
cvkit-video2image -i ./video.mp4 -o ./frames --perspective
作为 Python 库导入
from cvkit.utils.rtsp_video import Video
from cvkit.inference.yolo_inference import YoloObjInference
from cvkit.utils.logger import LoggerBuilder
# 初始化日志
logger = LoggerBuilder().get_logger("my_app")
# 使用 RTSP 视频拉流
video = Video(ip="192.168.1.100", stream_suffix="live")
CVTools
A computer vision toolkit featuring modular design.
Modules and File Descriptions
All core code resides inside the src/cvkit package:
cvkit/inference: Module for ONNX model inference.base_inference.py: Base class for inference.yolo_inference.py: Inference for YOLO models.sam3_inference.py: Inference for SAM3 models.tokenizer.py: Text encoder for SAM3.image_processor.py: Image processor.
cvkit/utils: General utility module.perspective_transformation.py: A class for performing perspective transformation.logger.py: Logging utility.data_define.py: Common data structure definitions.rtsp_video.py: RTSP video stream ingester.
- Command Line Interfaces (CLI):
cvkit-color-to-gray: Converts color images to grayscale.cvkit-data-split: Splits dataset into train, val, and test subsets.cvkit-random-selection: Randomly selects a portion of files.cvkit-show-yolo-obj: Visualizes YOLO object detection labels.cvkit-show-yolo-seg: Visualizes YOLO instance segmentation labels.cvkit-video2image: Converts a video file into an image sequence with perspective options.
Installation
You can install CVTools using pip or uv, optionally installing target computing backends for hardware acceleration:
1. Basic Installation (No ONNX inference)
pip install cvkit-python
# or with uv
uv pip install cvkit-python
2. Accelerated Backends Installation
- For CPU Inference
pip install "cvkit-python[onnx-cpu]"
- For GPU Inference (CUDA/TensorRT)
pip install "cvkit-python[onnx-gpu]"
- For SAM3 Inference
pip install "cvkit-python[onnx-gpu,sam]"
Usage
Command Line Interface
You can call CVTools scripts directly from the terminal after installation:
# 1. Grayscale Conversion
cvkit-color-to-gray -i ./input_dir -o ./output_dir --recursive
# 2. Dataset Splitting
cvkit-data-split -i ./dataset_dir -o ./split_out --train_ratio 0.8 --val_ratio 0.1 --test_ratio 0.1
# 3. Random Selection
cvkit-random-selection -i ./src_dir -o ./dst_dir -n 100 --model fixed
# 4. YOLO Object Detection Inference & Visualization
cvkit-show-yolo-obj --model ./yolov8n.onnx -i ./images -o ./output_results
# 5. YOLO Instance Segmentation Inference & Visualization
cvkit-show-yolo-seg --model ./yolov8n-seg.onnx -i ./images -o ./output_results --conf 0.5
# 6. Video Frame Extraction with Perspective Selection
cvkit-video2image -i ./video.mp4 -o ./frames --perspective
Python Library Import
from cvkit.utils.rtsp_video import Video
from cvkit.inference.yolo_inference import YoloObjInference
from cvkit.utils.logger import LoggerBuilder
# Initialize logger
logger = LoggerBuilder().get_logger("my_app")
# RTSP Video Stream ingestion
video = Video(ip="192.168.1.100", stream_suffix="live")
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cvkit_python-0.1.0.tar.gz.
File metadata
- Download URL: cvkit_python-0.1.0.tar.gz
- Upload date:
- Size: 71.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.18 {"installer":{"name":"uv","version":"0.11.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
acd6bd338dc85f4ff8355079f3e263d506214c762a634203db22c0ae14d56b9f
|
|
| MD5 |
f945d3c3ecaa1b29300d5def70139270
|
|
| BLAKE2b-256 |
1a25bba334a1e091dbd3faebb4db185a4c02d23cbdb06987ac796cdea298c749
|
File details
Details for the file cvkit_python-0.1.0-py3-none-any.whl.
File metadata
- Download URL: cvkit_python-0.1.0-py3-none-any.whl
- Upload date:
- Size: 56.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.18 {"installer":{"name":"uv","version":"0.11.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
154d9cb7dd5e088b0555efb1c81561b5c1ffd562eeef66a13f91d952e0ca2878
|
|
| MD5 |
ddb65882ee98b9d5128a2714a71539bf
|
|
| BLAKE2b-256 |
5904c7ecf61fe4e36bb99dee3904e85476592f3034f010f9c6e2174a629c60e1
|