快乐的兔八哥 2023-07-14 10:39 采纳率: 0%
浏览 95
已结题

训练AI识别缺口距离

需求描述

在网站登录的时候,出现拖动验证码,如我在Selenium进行登录的时候。要求截图后识别滑块和缺口之间的位置距离。你需要写个py的代码,然后训练一些数据,然后生成个模型。【测试网址:https://cas-q.juyoufuli.com/#/login
缺口图片如:

img

验收标准

1.提供你的py代码,写好注释,你可以少量的去训练数据,然后我拿到代码后,告知我怎么训练,我找人在标注一些数据
2.随机找验证图片,识别率在90%

参与要求

在悬赏页面提交申请,并注明您需要的时间,或相关项目!

  • 写回答

11条回答 默认 最新

  • CSDN专家-sinJack 2023-07-20 10:06
    关注
    获得3.50元问题酬金

    参考:

    import time
    import cv2
    from selenium import webdriver
    from selenium.webdriver.common.action_chains import ActionChains
    
    def get_slider_image(driver):
        # 获取整个页面截图
        driver.save_screenshot('screenshot.png')
        
        # 定位滑块元素并获取其位置和大小
        slider = driver.find_element_by_xpath('//div[@class="slider"]')
        location = slider.location
        size = slider.size
        
        # 根据滑块元素的位置和大小,裁剪出滑块图片
        image = cv2.imread('screenshot.png')
        x = location['x']
        y = location['y']
        width = size['width']
        height = size['height']
        
        slider_image = image[y:y+height, x:x+width]
        
        return slider_image
    
    def get_gap_position(slider_image):
        # 在这里编写代码来训练模型并预测滑块与缺口之间的距离
        
        # 这里只是一个示例,直接返回一个固定值作为距离(需要根据实际情况修改)
        gap_position = 100
        
        return gap_position
    
    def move_slider(driver, gap_position):
        # 获取滑块元素并计算需要移动的距离
        slider = driver.find_element_by_xpath('//div[@class="slider"]')
        
        distance_to_move = gap_position - 10  # 这里需要根据实际情况微调
        
        # 使用ActionChains类来模拟拖动操作
        action_chains = ActionChains(driver)
        
        # 按住滑块不放,并向右拖动指定距离,然后释放鼠标按钮完成拖动操作。
        # 这里需要根据实际情况微调移动速度和释放鼠标按钮的时间。
        # 可以尝试多次调整以达到最佳效果。
        
        # 示例中使用了一种简单的方式来模拟拖动操作,请根据实际情况进行修改。
        
        # 具体实现可能因为不同网站而有所差异,请根据具体网站的HTML结构和交互方式进行相应调整。
        
        action_chains.click_and_hold(slider).perform()
        action_chains.move_by_offset(distance_to_move, 0).perform()
        time.sleep(0.5)  # 等待一段时间以便验证通过(需要根据实际情况微调)
        action_chains.release().perform()
    
    # 创建WebDriver对象并打开网页
    driver_path = 'path/to/chromedriver'  # 替换为您下载的Chrome驱动程序路径
    driver = webdriver.Chrome(executable_path=driver_path)
    driver.get('https://example.com')  # 替换为目标网站URL
    
    time.sleep(2)  # 等待页面加载完成(需要根据实际情况微调)
    
    # 获取滑块图片并识别缺口位置距离
    slider_image = get_slider_image(driver)
    gap_position = get_gap_position(slider_image)
    
    # 移动滑块完成验证过程
    move_slider(driver, gap_position)
    
    time.sleep(5)  # 等待验证结果显示(需要根据实际情况微调)
    
    # 关闭浏览器窗口并退出WebDriver对象
    driver.quit()
    
    评论

报告相同问题?

问题事件

  • 系统已结题 7月22日
  • 请提交代码 7月14日
  • 创建了问题 7月14日

悬赏问题

  • ¥15 想咨询点问题,与算法转换,负荷预测,数字孪生有关
  • ¥15 C#中的编译平台的区别影响
  • ¥15 软件供应链安全是跟可靠性有关还是跟安全性有关?
  • ¥15 电脑蓝屏logfilessrtsrttrail问题
  • ¥20 关于wordpress建站遇到的问题!(语言-php)(相关搜索:云服务器)
  • ¥15 【求职】怎么找到一个周围人素质都很高不会欺负他人,并且未来月薪能够达到一万以上(技术岗)的工作?希望可以收到写有具体,可靠,已经实践过了的路径的回答?
  • ¥15 Java+vue部署版本反编译
  • ¥100 对反编译和ai熟悉的开发者。
  • ¥15 带序列特征的多输出预测模型
  • ¥15 Python 如何安装 distutils模块