可检测分类fbx、gltf、dae等多种格式的3D模型文件。
3DFD是基于深度学习的3D模型文件格式检测开发包,支持DAE、FBX、GLB、GLTF、OBJ、PLY、STL等7种常见格式。
3DFD开发包的目录组织说明如下:
3d_format_detector
| - model.pt # 检测器预训练模型
| - detector.py # 检测器实现类
| - demo.py # 检测器使用演示代码
| - requirements.txt # 依赖声明文件
| - data # 示例3D模型文件目录
| - 001.dae # dae测试文件
| - ...
使用开发包提供的Detector类,可以快速检测指定磁盘文件或字节串(bytes)的格式分类。
下面的代码实例化一个Detector类并检测指定的文件格式类别:
from detector import Detector
detector = Detector()
fns = [ # 要检测的目标文件列表
'data/001.bin',
'data/002.bin',
'data/003.bin']
labels = detector.detect_files(fns)
print(labels) # 输出: ['stl', 'dae', 'fbx']
下面的代码实例化Detector类并检测指定字节串表示的3D模型格式:
from detector import Detector
buffer_to_detect = '''
# 3ds Max Wavefront OBJ Exporter v0.97b
#
# object Cylinder001
#
v 9.2388 0.0000 3.8268
v 7.0711 0.0000 7.0711
v 3.8268 0.0000 9.2388
...
f 80/60/32 66/47/18 82/86/34 96/88/48
s 1
f 96/103/48 82/104/34 81/105/33 83/106/35 84/107/36 85/108/37 86/109/38 87/110/39 88/111/40 89/112/41 90/113/42 91/114/43 92/115/44 93/116/45 94/117/46 95/118/47
# 82 polygons
'''
detector = Detector()
labels = detector.detect_buffers([buffer_to_detect])
print(labels) # 输出:[ 'obj' ]
默认情况下,Detector使用CPU进行推理,可以在实例化Detector时指定推理设备。
例如:
from detector import Detector
detector = Detector(device='cuda:0') # 使用GPU
fns = ['data/001.dae', 'data/001.gltf']
labels = detector.detect_files(fns)
当仅需要检测单个文件或单个字节串时,可以使用detect_file()
或detect_buffer()
,
这两个API只是对应的批量检测API的简单语法糖封装。
例如使用 detect_file()
检测单个文件:
from detector import Detector
detector = Detector()
label = detector.detect_file('data/001.stl')
print(label) # 输出:'stl'
或者使用 detect_buffer()
检测单个字节串:
from detector import Detector
buffer_to_detect = '''...'''
label = detector.detect_buffer(buffer_to_detect)
print(label)
本站所提供软件包仅用于学习和研究,请依法合规使用。
本站所提供软件包均提供完整源码,使用前请认真阅读源代码和文档以确保充分理解软件包的设计与功能实现,本站不承担 因不当使用本站所提供软件包而造成的任何法律风险或财产损失责任。