-
Notifications
You must be signed in to change notification settings - Fork 429
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
您好,我想自己训练一下yolo模型,想请教您一下char,title,和target的class排序是什么样的,title是图片上的什么图像,训练配置的图片参数是不是填写384 #68
Comments
顺序无所谓 你可以在代码上更改 所有代码都是开源的
…---- 回复的原邮件 ----
| 发件人 | ***@***.***> |
| 日期 | 2024年10月20日 18:20 |
| 收件人 | ***@***.***> |
| 抄送至 | ***@***.***> |
| 主题 | [MgArcher/Text_select_captcha] 您好,我想自己训练一下yolo模型,想请教您一下char,title,和target的class排序是什么样的,title是图片上的什么图像,训练配置的图片参数是不是填写384 (Issue #68) |
您好,我想自己训练一下yolo模型,想请教您一下char,title,和target的class排序是什么样的,title是图片上的什么图像,训练配置的图片参数是不是填写384,我怕训练出来的模型代码用不了
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: ***@***.***>
|
title是指右下角指示验证内容所在位置,target是指待点击字符位置 应该
…---- 回复的原邮件 ----
| 发件人 | ***@***.***> |
| 日期 | 2024年10月20日 18:27 |
| 收件人 | ***@***.***> |
| 抄送至 | ***@***.***>***@***.***> |
| 主题 | Re: [MgArcher/Text_select_captcha] 您好,我想自己训练一下yolo模型,想请教您一下char,title,和target的class排序是什么样的,title是图片上的什么图像,训练配置的图片参数是不是填写384 (Issue #68) |
顺序无所谓 你可以在代码上更改 所有代码都是开源的
…
---- 回复的原邮件 ---- | 发件人 | @.> | | 日期 | 2024年10月20日 18:20 | | 收件人 | @.> | | 抄送至 | @.> | | 主题 | [MgArcher/Text_select_captcha] 您好,我想自己训练一下yolo模型,想请教您一下char,title,和target的class排序是什么样的,title是图片上的什么图像,训练配置的图片参数是不是填写384 (Issue #68) | 您好,我想自己训练一下yolo模型,想请教您一下char,title,和target的class排序是什么样的,title是图片上的什么图像,训练配置的图片参数是不是填写384,我怕训练出来的模型代码用不了 — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you are subscribed to this thread.Message ID: @.>
那title指的是图片上的哪个部分,是图片左下角待点击的内容吗
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.Message ID: ***@***.***>
|
你回复的代码有点乱 看不懂 我现在没办法看上传的代码
…---- 回复的原邮件 ----
| 发件人 | ***@***.***> |
| 日期 | 2024年10月20日 18:43 |
| 收件人 | ***@***.***> |
| 抄送至 | ***@***.***>***@***.***> |
| 主题 | Re: [MgArcher/Text_select_captcha] 您好,我想自己训练一下yolo模型,想请教您一下char,title,和target的class排序是什么样的,title是图片上的什么图像,训练配置的图片参数是不是填写384 (Issue #68) |
但是我试着修改了一下代码,发现模型输出的参数中不包含tltle的坐标,但是代码中却有title
import os
from src.utils import ver_onnx
from src.utils import yolo_onnx
from src.utils import utils, matchingMode
class JYClick(object):
def init(self, per_path='pre_model_v6.bin', yolo_path='best_v2.bin', sign=True):
save_path = os.path.join(os.path.dirname(file), '../../model')
path = lambda a, b: os.path.join(a, b)
per_path = path(save_path, per_path)
yolo_path = path(save_path, yolo_path)
if sign:
try:
from src.utils.load import decryption
except:
raise Exception("Error! 请在windows下的python3.6、3.8、3.10环境下使用")
yolo_path = decryption(yolo_path)
per_path = decryption(per_path)
self.yolo = yolo_onnx.YOLOV5_ONNX(yolo_path, classes=['target', 'title', 'char'],
providers=['CPUExecutionProvider'])
self.pre = ver_onnx.PreONNX(per_path, providers=['CPUExecutionProvider'])
def run(self, image_path):
img = utils.open_image(image_path)
data = self.yolo.decect(image_path)
h, w = img.size # 获取图像的高度和宽度
labels = []
# 处理 char、target 和 title
for item in data:
class_name = item.get("classes")
coords = item.get("crop")
if class_name == "char":
class_id = 0 # class0 for char
elif class_name == "target":
class_id = 1 # class1 for target
elif class_name == "title": # 添加 title 的处理
class_id = 2 # class2 for title
else:
continue
# 获取中心点坐标和宽高
x_center = (coords[0] + coords[2]) / 2 / w
y_center = (coords[1] + coords[3]) / 2 / h
width = (coords[2] - coords[0]) / w
height = (coords[3] - coords[1]) / h
# 保存到 labels 列表
labels.append(f"{class_id} {x_center:.6f} {y_center:.6f} {width:.6f} {height:.6f}")
print(data)
return labels
def generate_labels_for_all_images():
current_dir = os.path.dirname(file)
jpg_files = [f for f in os.listdir(current_dir) if f.endswith('.jpg')]
for jpg_file in jpg_files:
image_path = os.path.join(current_dir, jpg_file)
jy_click = JYClick()
labels = jy_click.run(image_path)
# 生成标签文件
label_file = os.path.splitext(jpg_file)[0] + '.txt'
with open(label_file, 'w') as f:
for label in labels:
f.write(label + '\n')
print(f"生成标签文件: {label_file}")
if name == 'main':
generate_labels_for_all_images()
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.Message ID: ***@***.***>
|
不会写代码的话你看着会挺麻烦的 一般来讲200张验证码图片的训练集就可以达到70~80的准确率 ,想达到90以上要500-1000张照片
…---- 回复的原邮件 ----
| 发件人 | ***@***.***> |
| 日期 | 2024年10月20日 19:31 |
| 收件人 | ***@***.***> |
| 抄送至 | ***@***.***>***@***.***> |
| 主题 | Re: [MgArcher/Text_select_captcha] 您好,我想自己训练一下yolo模型,想请教您一下char,title,和target的class排序是什么样的,title是图片上的什么图像,训练配置的图片参数是不是填写384 (Issue #68) |
你回复的代码有点乱 看不懂 我现在没办法看上传的代码
…
---- 回复的原邮件 ---- | 发件人 | @.> | | 日期 | 2024年10月20日 18:43 | | 收件人 | @.> | | 抄送至 | @.>@.> | | 主题 | Re: [MgArcher/Text_select_captcha] 您好,我想自己训练一下yolo模型,想请教您一下char,title,和target的class排序是什么样的,title是图片上的什么图像,训练配置的图片参数是不是填写384 (Issue #68) | 但是我试着修改了一下代码,发现模型输出的参数中不包含tltle的坐标,但是代码中却有title import os from src.utils import ver_onnx from src.utils import yolo_onnx from src.utils import utils, matchingMode class JYClick(object): def init(self, per_path='pre_model_v6.bin', yolo_path='best_v2.bin', sign=True): save_path = os.path.join(os.path.dirname(file), '../../model') path = lambda a, b: os.path.join(a, b) per_path = path(save_path, per_path) yolo_path = path(save_path, yolo_path) if sign: try: from src.utils.load import decryption except: raise Exception("Error! 请在windows下的python3.6、3.8、3.10环境下使用") yolo_path = decryption(yolo_path) per_path = decryption(per_path) self.yolo = yolo_onnx.YOLOV5_ONNX(yolo_path, classes=['target', 'title', 'char'], providers=['CPUExecutionProvider']) self.pre = ver_onnx.PreONNX(per_path, providers=['CPUExecutionProvider']) def run(self, image_path): img = utils.open_image(image_path) data = self.yolo.decect(image_path) h, w = img.size # 获取图像的高度和宽度 labels = [] # 处理 char、target 和 title for item in data: class_name = item.get("classes") coords = item.get("crop") if class_name == "char": class_id = 0 # class0 for char elif class_name == "target": class_id = 1 # class1 for target elif class_name == "title": # 添加 title 的处理 class_id = 2 # class2 for title else: continue # 获取中心点坐标和宽高 x_center = (coords[0] + coords[2]) / 2 / w y_center = (coords[1] + coords[3]) / 2 / h width = (coords[2] - coords[0]) / w height = (coords[3] - coords[1]) / h # 保存到 labels 列表 labels.append(f"{class_id} {x_center:.6f} {y_center:.6f} {width:.6f} {height:.6f}") print(data) return labels def generate_labels_for_all_images(): current_dir = os.path.dirname(file) jpg_files = [f for f in os.listdir(current_dir) if f.endswith('.jpg')] for jpg_file in jpg_files: image_path = os.path.join(current_dir, jpg_file) jy_click = JYClick() labels = jy_click.run(image_path) # 生成标签文件 label_file = os.path.splitext(jpg_file)[0] + '.txt' with open(label_file, 'w') as f: for label in labels: f.write(label + '\n') print(f"生成标签文件: {label_file}") if name == 'main': generate_labels_for_all_images() — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>
我使用这个项目时发现有些时候会少点图像,我大概看了一下代码,应该是用yolo识别出要验证的部分和要点击的部分,然后用孪生模型比对后确定点击顺序。我打算自己训练一个yolo,但是自己标注太麻烦,我就打算用你的现有模型来标注,然后我来修正标记错误的部分,再喂给yolo。我不会写代码,所以我让ai改了jy_click.py。让代码利用模型输出对应图片的label用于训练,但是label的结果很差,跟标记出来的res1完全不一样。后来我又问了一下ai,ai说绘制出来的结果使用孪生模型修正过的,我就让ai把修正过的结果输出成label,发现比我标记的都准。后续就是修改我的程序,在日常使用中自动保存识别错误的验证码,在处理之后喂给yolo,效果应该能好不少
以下是修改好的代码
jy_click.txt
顺便问一下您现在项目里的模型是用了多少张图片来训练的
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.Message ID: ***@***.***>
|
可以试试
…---- 回复的原邮件 ----
| 发件人 | ***@***.***> |
| 日期 | 2024年10月20日 19:41 |
| 收件人 | ***@***.***> |
| 抄送至 | ***@***.***>***@***.***> |
| 主题 | Re: [MgArcher/Text_select_captcha] 您好,我想自己训练一下yolo模型,想请教您一下char,title,和target的class排序是什么样的,title是图片上的什么图像,训练配置的图片参数是不是填写384 (Issue #68) |
不会写代码的话你看着会挺麻烦的 一般来讲200张验证码图片的训练集就可以达到70~80的准确率 ,想达到90以上要500-1000张照片
…
---- 回复的原邮件 ---- | 发件人 | @.> | | 日期 | 2024年10月20日 19:31 | | 收件人 | @.> | | 抄送至 | @.>@.> | | 主题 | Re: [MgArcher/Text_select_captcha] 您好,我想自己训练一下yolo模型,想请教您一下char,title,和target的class排序是什么样的,title是图片上的什么图像,训练配置的图片参数是不是填写384 (Issue #68) | 你回复的代码有点乱 看不懂 我现在没办法看上传的代码 … ---- 回复的原邮件 ---- | 发件人 | @.> | | 日期 | 2024年10月20日 18:43 | | 收件人 | @.> | | 抄送至 | @.>@.> | | 主题 | Re: [MgArcher/Text_select_captcha] 您好,我想自己训练一下yolo模型,想请教您一下char,title,和target的class排序是什么样的,title是图片上的什么图像,训练配置的图片参数是不是填写384 (Issue #68) | 但是我试着修改了一下代码,发现模型输出的参数中不包含tltle的坐标,但是代码中却有title import os from src.utils import ver_onnx from src.utils import yolo_onnx from src.utils import utils, matchingMode class JYClick(object): def init(self, per_path='pre_model_v6.bin', yolo_path='best_v2.bin', sign=True): save_path = os.path.join(os.path.dirname(file), '../../model') path = lambda a, b: os.path.join(a, b) per_path = path(save_path, per_path) yolo_path = path(save_path, yolo_path) if sign: try: from src.utils.load import decryption except: raise Exception("Error! 请在windows下的python3.6、3.8、3.10环境下使用") yolo_path = decryption(yolo_path) per_path = decryption(per_path) self.yolo = yolo_onnx.YOLOV5_ONNX(yolo_path, classes=['target', 'title', 'char'], providers=['CPUExecutionProvider']) self.pre = ver_onnx.PreONNX(per_path, providers=['CPUExecutionProvider']) def run(self, image_path): img = utils.open_image(image_path) data = self.yolo.decect(image_path) h, w = img.size # 获取图像的高度和宽度 labels = [] # 处理 char、target 和 title for item in data: class_name = item.get("classes") coords = item.get("crop") if class_name == "char": class_id = 0 # class0 for char elif class_name == "target": class_id = 1 # class1 for target elif class_name == "title": # 添加 title 的处理 class_id = 2 # class2 for title else: continue # 获取中心点坐标和宽高 x_center = (coords[0] + coords[2]) / 2 / w y_center = (coords[1] + coords[3]) / 2 / h width = (coords[2] - coords[0]) / w height = (coords[3] - coords[1]) / h # 保存到 labels 列表 labels.append(f"{class_id} {x_center:.6f} {y_center:.6f} {width:.6f} {height:.6f}") print(data) return labels def generate_labels_for_all_images(): current_dir = os.path.dirname(file) jpg_files = [f for f in os.listdir(current_dir) if f.endswith('.jpg')] for jpg_file in jpg_files: image_path = os.path.join(current_dir, jpg_file) jy_click = JYClick() labels = jy_click.run(image_path) # 生成标签文件 label_file = os.path.splitext(jpg_file)[0] + '.txt' with open(label_file, 'w') as f: for label in labels: f.write(label + '\n') print(f"生成标签文件: {label_file}") if name == 'main': generate_labels_for_all_images() — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.> 我使用这个项目时发现有些时候会少点图像,我大概看了一下代码,应该是用yolo识别出要验证的部分和要点击的部分,然后用孪生模型比对后确定点击顺序。我打算自己训练一个yolo,但是自己标注太麻烦,我就打算用你的现有模型来标注,然后我来修正标记错误的部分,再喂给yolo。我不会写代码,所以我让ai改了jy_click.py。让代码利用模型输出对应图片的label用于训练,但是label的结果很差,跟标记出来的res1完全不一样。后来我又问了一下ai,ai说绘制出来的结果使用孪生模型修正过的,我就让ai把修正过的结果输出成label,发现比我标记的都准。后续就是修改我的程序,在日常使用中自动保存识别错误的验证码,在处理之后喂给yolo,效果应该能好不少 以下是修改好的代码 jy_click.txt 顺便问一下您现在项目里的模型是用了多少张图片来训练的 — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.>
我周五的时候用代码抓了2000多张
https://www.123865.com/s/YKUqVv-V7gSh?提取码:RKTd
标注的话可以用我之前发的代码自动标注,然后手动修正,我打算先喂2000张,然后试着用抓来的易错验证码试试效果
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.Message ID: ***@***.***>
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
您好,我想自己训练一下yolo模型,想请教您一下char,title,和target的class排序是什么样的,title是图片上的什么图像,训练配置的图片参数是不是填写384,我怕训练出来的模型代码用不了
The text was updated successfully, but these errors were encountered: