由于我的电脑只有CPU,所以还需要对代码进行一些修改
代码修改部分
用VSCode打开OmniParser的文件夹,对demo文件中的部分代码进行修改
第一步:将device改为cpu
第二步:看这个后边需要加一个device=device
caption_model_processor = get_caption_model_processor(model_name="florence2", model_name_or_path="weights/icon_caption_florence", device=device)
然后开始逐个运行,即可。
我遇到的问题
运行demo,ipynb,将这个文件中的代码一个部分一个部分运行
1、运行第一个部分的时候出现了下边的问题
Can't get attribute 'C3k2' on <module 'ultralytics.nn.modules.block' from 'c:\\Users\\Administrator\\anaconda3\\envs\\a_i\\Lib\\site-packages\\ultralytics\\nn\\modules\\block.py'
这个怎么解决那?
在cmd中更新这个东西就好了(注意先把位置找对,先调到对应的文件,就是你配置环境的那个文件)
pip install --upgrade ultralytics
更新 ultralytics
库到最新版本
2、运行的这个部分,出现了另外的问题
RuntimeError: [enforce fail at alloc_cpu.cpp:114] data. DefaultCPUAllocator: not enough memory: you tried to allocate 1925185536 bytes.
这个是由于电脑内存较小,无法处理过来图片
batch_size将这个值调小,我这里调成32了,可以正常运行了,但是处理时间变长了
dino_labled_img, label_coordinates, parsed_content_list = get_som_labeled_img(image_path, som_model, BOX_TRESHOLD = BOX_TRESHOLD, output_coord_in_ratio=True, ocr_bbox=ocr_bbox,draw_bbox_config=draw_bbox_config, caption_model_processor=caption_model_processor, ocr_text=text,use_local_semantics=True, iou_threshold=0.7, scale_img=False, batch_size=32)