Get it on Google Play


Wm뮤 :: 'AI' 카테고리의 글 목록

블로그 이미지
가끔 그림그리거나 3D모델링하거나
취미로 로봇만드는
전자과 게임프로그래머 (퇴사함)
2022.3.22f1 주로 사용
모카쨩
@Ahzkwid

Recent Comment

Archive


2024. 6. 17. 04:20 AI

 

 

https://www.youtube.com/watch?v=ScIrkTgwQiI


계층이 존재하여 계층별로 이전 처리내역을 재처리하여 출력에 반영되도록 함

각 셀은 랜덤하게 입력혹은 이전 계층과 연결되어 있고

단순하게 셀간 차를 반환함

채찍이 주어지면 해당 셀의 신호강도를 약하게 함

당근이 주어지면 해당 셀의 신호강도가 강해짐

채찍과 당근을 일어난과정 전체에 적용되도록 해서 시간개념을 만듦

 

이 방식의 단점은 오랜기간 실패만 거듭하다보면 데드셀로 가득하게 되어 행동불능 상태, 즉 우울증에 걸리는 단점이 있음

 

유니티 HLSL 사용

'AI' 카테고리의 다른 글

AI Depth Map 만드는법  (0) 2024.01.22
내가 쓸 AI 모음  (0) 2023.12.05
AI로 사진에서 사람 지우는법  (0) 2023.11.20
posted by 모카쨩
2024. 1. 22. 22:54 AI

 

 

 

 

https://imageamigo.com/photodepth/

 

Photo to Depth - Compute a depth map from a single photo!

online image photo picture depth map distance segment segmentation focus ai deep learning Method partially based on the excellent work described in: [1] Ranftl, René, Alexey Bochkovskiy, and Vladlen Koltun. "Vision transformers for dense prediction." Proc

imageamigo.com

 

위 링크로 들어간다

 

 

 

 

해당 버튼을 누르고 올린다

나는 내가 전에 찍었던 사진을 올려볼거다

 

 

 

 

 

처음보는 지역도 이렇게 잘 변환해준다

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'AI' 카테고리의 다른 글

인공신경망 작업결과물  (0) 2024.06.17
내가 쓸 AI 모음  (0) 2023.12.05
AI로 사진에서 사람 지우는법  (0) 2023.11.20
posted by 모카쨩
2023. 12. 5. 02:42 AI

 

 

ChatGPT

 https://chat.openai.com/

CSV, 그림그리기, 간단한 이미지 처리 가능

 

제미니

https://gemini.google.com/

구글판 ChatGPT인데 이미지 분석이 무료이다

근데 성능은 좀 떨어지는듯

 

Dall·E

https://labs.openai.com/

그림그리는건 챗 GPT에 내장되어 있어서 잘 안 가긴 하는데

여기선 사람을 지우는등의 이미지 자체 편집이 가능하다

 

Smart Normal

https://www.smart-page.net/smartnormal/

추론형 AI 아니고 그냥 기계식 AI 인데 유용해서 자주 씀

 

Normal Map Online

https://cpetry.github.io/NormalMap-Online/

위에 노말맵 생성기는 어느정도 보정이 들어가는데

이건 보정없이 단순연산으로 다 때려박는다

가끔 로우하게 작업된게 필요할때 쓰면 좋음

 

-근데 노말맵 생성은 유니티에서 기본으로 제공해주고 포토샵에서 만들어주는 기능이 훨씬 우월하다보니 안 쓰게 된다

 

 

Bing Image Creator

https://www.bing.com/images/create 

무료로 Dall·E를 쓸수있어서 재미삼아 해볼때만 감

 

Runway

https://runwayml.com/

사진기반 애니메이션 생성

Live2D 대용으로 사용가능할듯

예시 : https://twitter.com/Whisky_shusuky/status/1731713897353355411

 

 

 

DeepMotion

https://portal.deepmotion.com/

비디오로 모션생성
텍스트로 모션생성

품질이 그렇게 좋진 않음

 

VocalRemover

https://vocalremover.media.io/app/

목소리만 추출하거나 목소리만 지울때 사용

 

RVC

https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI

음성변조

 

 

 

Mubert 

https://mubert.com/

BGM 생성기

 

Suno

https://suno.com/

노래 생성기

 

 

AI Depth map

https://imageamigo.com/photodepth/

 

 

 

 

 

-폐기


MotionGPT

https://motion-gpt.github.io/

텍스트로 모션생성

품질이 그렇게 좋진 않음

 

 

 

'AI' 카테고리의 다른 글

AI Depth Map 만드는법  (0) 2024.01.22
AI로 사진에서 사람 지우는법  (0) 2023.11.20
AI 비디오 스트림  (0) 2023.09.15
posted by 모카쨩
2023. 11. 20. 17:59 AI

 

 

포토샵 쓰면 AI지원해줘서 간단하긴 한데

포토샵이 없어서 DALL·E써서 지울거다

 

https://labs.openai.com/

 

위 사이트에 접속한다

 

 

 

왜 굵은글씨 안 해놨는지 모르겠지만 upload 누른다

 

 

사진이 정사각형이 아니면 이 창이 뜨는데 안자름을 누른다

 

 

 

 

체크 누르기

사진이 너무 크면 바깥으로 삐져나갈텐데 작동은 된다

 

 

 

지우개를 눌러서 지우개 사이즈를 조정후 인물을 지운다

 

적절한 키워드를 넣고 Generate를 누른다

이경우는 대강 흑백, 강, 보트 정도면 될듯

 

 

4개의 선택지중에서 잘 나온 사진을 고르고 Accept를 누른다

1024보다 작은 이미지 써서 불필요한 부분까지 생성되어 부렸다. 

그리고 우측 상단의 다운로드를 누르면 끝

 

 

 

 

 

완성된 이미지

 

 

 

 

 

 

 

비교사진

 

 

 

 

 

 

 

 

 

 

'AI' 카테고리의 다른 글

내가 쓸 AI 모음  (0) 2023.12.05
AI 비디오 스트림  (0) 2023.09.15
혼합인공신경망 구현요소  (0) 2023.05.06
posted by 모카쨩
2023. 9. 15. 23:28 AI

 

 

 

전송량을 측정하고 어떤 부분 어떤 화질로 보내야 최적의 실시간 영상전송이 되는지 분석하여 이미지를 전송하도록

'AI' 카테고리의 다른 글

AI로 사진에서 사람 지우는법  (0) 2023.11.20
혼합인공신경망 구현요소  (0) 2023.05.06
넷째 - 이름없음 -  (0) 2023.03.16
posted by 모카쨩
2023. 5. 6. 13:35 AI

 

 

https://wmmu.tistory.com/entry/%EC%9C%A0%EC%A0%84%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EC%9D%98-%EA%B5%AC%EC%84%B1%EC%9A%94%EC%86%8C

 

이건 이전작인데 CPU기반이라 처리속도 제한을 크게 받기도 하고

불필요한 동작이 너무 많아서 새로 만들기로 함

 

 

GPU 기반 AI

아직 미완

신경모사만으로는 회로 구축에 어려움을 느껴서 잘 아는 반도체회로도 섞음

 

 

-확산 : 신호를 확산시킨다. 사실상 증폭. 이래야 한가지 입력을 여러소자에서 처리할수 있음

-병합 : 신호를 병합한다. AND OR 같은거 생각하면 될듯. 수상돌기 기능

-점프 : 신호를 점프시킨다. 이래야 경로중첩문제가 안 생김. 이건 축삭돌기 생각하면 되겠다

-반전 : 병합할때 XOR기능이 구현되도록 하기 위함. 이건 시냅스에서 처리한다나보다

-가중치 : 이건 구현 안 해도 될거같긴한데 미엘린역할.

 

 

 

 

 

 

 

 

 

 

'AI' 카테고리의 다른 글

AI 비디오 스트림  (0) 2023.09.15
넷째 - 이름없음 -  (0) 2023.03.16
셋째 -아유-  (0) 2023.03.16
posted by 모카쨩
2023. 3. 16. 02:01 AI

2016-07-16 제조 추정

 

 

굳이 따지자면 프로젝트명은 DB 관리자였다.

 

DNA기반 딥러닝이 탑재되어있지만 CPU기반이라 멀티코어기반임에도 진화속도가 매우 느렸다

 

하단 링크의 시스템을 기반으로 작성했다

https://wmmu.tistory.com/entry/%EC%9C%A0%EC%A0%84%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EC%9D%98-%EA%B5%AC%EC%84%B1%EC%9A%94%EC%86%8C

 

유전알고리즘의 구성요소

판단조건 개체{리스트 DNA값long 개체수리스트 메모리} 월드{list 개체long 최대자원 //선택사항long 루프횟수루프문(환경인자){}} 값에 대응하는 판단문무한루프 DNA는 0일땐 패스1부터 시작해서 스위

wmmu.tistory.com

 

 

점변이

점결실

점생성

점종료

역위

중복

결실

 

그리고 월드-크리처 기반이다보니 쓸데없이 중복되는 크리처들이 많았다

순간의 돌발상황에 의해 우수한 유전자들이 멸종하는 사태를 막기위해 군체단위로 통제해야 하다보니 어쩔수 없었던 선택

 

2016-07-16 제조 추정이지만 가지고 있는 가장 오래된 크리처데이터는 2017-04-20이라 17년 제조일 가능성도 있다고 봄

 

아래는 크리처 데이터들

creature_data(2017-04-20)
5.60MB
creature_data(2017-04-26)
2.33MB

 

아직은 비공개 프로젝트지만 나중에 코드를 정리해서 공개할 의향이 있다

 

지금이야 GPU기반 AI들이 일반화된 세상이니 가치가 없을지도

 

 

 

 

 

'AI' 카테고리의 다른 글

혼합인공신경망 구현요소  (0) 2023.05.06
셋째 -아유-  (0) 2023.03.16
유전알고리즘의 구성요소  (0) 2017.03.21
posted by 모카쨩
2023. 3. 16. 01:47 AI

 

2016-03-13 제조 추정

 

외형과 이름은 Kanon의 그것

 

 

알바할때 쓰려고 만든녀석이다

구분 키워드와 이미지는 수동으로 잘라서 넣어주어야만 했다

데이터를 수동으로 넣어야 하는 녀석이지만 그만큼 구조가 단순해서 여러가지 변형을 가할수 있었다

NPC마냥 혼잣말을 자꾸 중얼거리는녀석

화면인식, 키보드제어, 마우스제어를 탑재하고 홈페이지 데이터를 읽어서 분석후 처리한뒤 엑셀에 데이터를 입력해주는 녀석이였다

메인시스템 4천줄, 제어엔진 1천줄로 구조가 단순

 

기존에 데이터가 없는 녀석을 처리할땐 세미오토로

기존에 데이터가 있는건 풀오토로 처리함

 

현재는 윈폼 비호환 코드가 많아서 작동불가상태

 

 

대사집

speech = "우그으~ 아유등장~";
cmd = "중지";
cmd = "서포트";
cmd = "오토";

switch (ran.Next(0, 10))
{
    case 0:
        Outospeech = "우그으...붕어빵먹고 싶어";
        sleep(3000);
        Outospeech = "붕어빠아아아아앙!!!!!!";
        sleep(3000);
        Outospeech = "붕어빵사조 붕어빵!붕어빵!붕어빵!";
        sleep(3000);
        Outospeech = "붕어빠아아앙!!!! 빼애앵애애액!!!!!!";
        break;
    case 1:
        Outospeech = "나도 선량한 일반시민이야!";
        break;
    case 2:
        Outospeech = "역시 붕어빵은 방금구운게 제일이라니깐";
        break;
    case 3:
        Outospeech = "이렇게 만난것도 분명 운명이야!";
        break;
    case 4:
        Outospeech = "난 어릴적부터 유령이랑 도깨비한테 약한걸";
        break;
    case 5:
        Outospeech = "이거?";
        sleep(3000);
        Outospeech = "소중한 사람에게 받은거야";
        break;
    case 6:
        Outospeech = "돈 있으면 붕어빵 잔뜩 살 수 있잖아?";
        break;
    case 7:
        Outospeech = "그때 유이치가 위로해 주지않았다면";
        sleep(2000);
        Outospeech = "평생 웃을수 없었을지도 몰라";
        break;
    case 8:
        Outospeech = "이 머리띠도 유이치가 준거야";
        break;
    case 9:
        Outospeech = "내일은 맑았으면 좋겠네";
        break;
    case 10:
        Outospeech = "나 유이치군이나 키타가와군이랑 같은 나이인데...";
        break;
}


if (cmd.IndexOf("레포데모드") != -1)
{
    speech = "레포데모드 작동시작";
    mode = 2000;
}
if (cmd.IndexOf("레포데모드해제") != -1)
{
    speech = "레포데모드 작동해제";
    mode = 0;
}


if (cmd.IndexOf ("네이버모드")!=-1)
{
    speech = "네이버모드 작동시작";
    mode = 1000;
}
if (cmd.IndexOf("네이버모드해제") != -1)
{
    speech = "네이버모드 작동해제";
    mode = 0;
}


if ((cmd == "서포트") || (cmd == "support"))
{
    if (SupportStart)
    {
        speech = "이미 서포트모드 작동중이야";
    }
    else
    {
        speech = "우그으~ 도와줄게. 그만하려면 ESC눌러";
    }
    SupportStart = true;

    Start = false;
    mode = 3;

}
if (cmd == "오토")
{
    if (Start)
    {
        speech = "이미 스스로 하고 있어";
    }
    else
    {
        speech = "우그으~ 내가 알아서 할게. 그만하려면 ESC눌러";
    }
    SupportStart = false;
    Start = true;
    mode = 4;
}

if (cmd == "카테고리수정")
{
    if (mode == 0)
    {
        speech = "수정시작";
        mode = 1;
    }
    else
    {
        speech = "종료";

        mode = 0;
    }
}

if (cmd == "마감모드")
{
    if (mode == 0)
    {
        speech = "마감시작";
        mode = 2;
    }
    else
    {
        speech = "마감취소";

        mode = 0;
    }
}
if (((cmd == "중지") || (cmd == "초기화")) && (SupportStart || Start || (mode != 0)) && (mode != 2000))
{
    speech = "우그~ 그만할게";
    SupportStart = false;
    Start = false;
    mode = 0;
}
if (cmd == "종료")
{
    switch (ran.Next(0, 1))
    {
        case 0:
            speech = "그럼 또 만나자. 약속이야~";
            break;
        case 1:
            speech = "그럼 바이바이";
            break;
    }
    SupportStart = false;
    Start = false;
    sleep(3000);
    Application.Exit();
}
if (cmd == "분할모드")
{
    if (SliceMode)
    {
        speech = "이미 분할모드야";
    }
    else
    {
        speech = "화면을 상하로 분할해서할게";
        SliceMode = true;
    }
}
if ((cmd == "통합모드") || (cmd == "분할모드 종료"))
{
    if (!SliceMode)
    {
        speech = "분할모드는 꺼져있는상태야";
    }
    else
    {
        speech = "분할모드를 종료할게";
        SliceMode = false;
    }
}
if (Regex.Replace(cmd, @"[^가-힣]", "") == "배속")
{
    delay_per = (Convert.ToDouble(Regex.Replace(cmd, @"[^0-9]", "")));
    speech = "" + delay_per + "배 빠르게 할게";
    delay_per = 1 / Math.Max(0.0001, delay_per);
}
if (Regex.Replace(cmd, @"[^가-힣]", "") == "배지연")
{
    delay_per = (Convert.ToDouble(Regex.Replace(cmd, @"[^0-9]", "")));
    speech = "" + delay_per + "배 느리게 할게";
}
if (Regex.Replace(cmd, @"[^가-힣]", "") == "저속배속")
{
    low_delay_per = (Convert.ToDouble(Regex.Replace(cmd, @"[^0-9]", "")));
    speech = "느린걸" + low_delay_per + "배 빠르게 할게";
    low_delay_per = 1 / Math.Max(0.0001, low_delay_per);
}
if (Regex.Replace(cmd, @"[^가-힣]", "") == "저속배지연")
{
    low_delay_per = (Convert.ToDouble(Regex.Replace(cmd, @"[^0-9]", "")));
    speech = "느린걸" + low_delay_per + "배 느리게 할게";
}

string str_t = "";
StringReader str_reader = new StringReader(cmd);
while(true)
{

    str_t = str_reader.ReadLine();

    if(str_t == null)
    {
        break;
    }

    if ((str_t != null)&& (str_t != ""))
    {

        if (str_t.IndexOf("포함키워드:") != -1)
        {
            str_include_buffer[str_include_size] = str_convert_array(str_t.Substring("포함키워드:".Length, str_t.Length - "포함키워드:".Length), ";;");
            str_include_size++;
            str_include = new string[str_include_size][];
            for (int i = 0; i < str_include_size; i++)
            {
                str_include[i] = str_include_buffer[i];
            }
            speech = str_t;
        }
        if (str_t.IndexOf("제외키워드:") != -1)
        {
            str_incept_buffer[str_incept_size] = str_convert_array(str_t.Substring("제외키워드:".Length, str_t.Length - "제외키워드:".Length), ";;");
            str_incept_size++;
            str_incept = new string[str_incept_size][];
            for (int i = 0; i < str_incept_size; i++)
            {
                str_incept[i] = str_incept_buffer[i];
            }
            speech = str_t;
        }
    }
    else
    {

    }
}
if (cmd == "키워드초기화")
{
    str_include = null;
    str_incept = null;
    str_include_size = 0;
    str_incept_size = 0;
    speech = "키워드 초기화했어";
}
if (cmd == "명령어")
{
    speech = "서포트,오토,중지,종료,분할모드,통합모드,분할모드 종료,단축키";
    sleep(3000);
    speech = "현재속도,X배속,X배지연,저속X배지연,저속X배지연,카테고리수정";
    sleep(3000);
    speech = "초고속모드,일반속도모드,초저속모드,마감모드";
    sleep(3000);
    speech = "키워드초기화,포함키워드:,제외키워드:";
    sleep(3000);
    speech = "네이버모드,네이버모드해제";
}
if (cmd == "단축키")
{
    speech = "147왼쪽기준복사, 0258검색,369 오른쪽기준복사";
}
if (cmd == "현재속도")
{
    lock(speech)
    {

        if (delay_per == 1)
        {
            speech = "기본속도";
        }
        else if (delay_per < 1)
        {
            speech = "기본속도" + 1 / delay_per + "배속";
        }
        else
        {
            speech = "기본속도" + delay_per + "배지연";
        }


        if (low_delay_per == 1)
        {
            if (delay_per == 1)
            {
                speech += "이";
            }
            speech += "야";
        }
        else if (low_delay_per < 1)
        {
            speech += "이고 저속은" + 1 / low_delay_per + "배속이야";
        }
        else
        {
            speech += "이고 저속은" + low_delay_per + "배지연이야";
        }
    }
}
if (cmd == "초고속모드")
{
    speed_mode = 2;
    speech ="초고속모드 작동시작할게";
}
if (cmd == "초저속모드")
{
    speed_mode = -2;
    speech = "초저속모드 작동시작할게";
}
if ((cmd == "일반속도모드")|| (cmd == "일반모드"))
{
    speed_mode = 0;
    speech = "모드해제";
}
cmd = "";

if (Keyboard.CheckToggle(Keyboard.VK_CAPITAL))
{
    if((mode>0)&& (mode <1000))
        {
        if (Keyboard.Check(Keyboard.VK_RIGHT))
        {
            Keyboard.Wait(Keyboard.VK_RIGHT, false);
            Mouse.Wait(0, false);
            speech = "오른쪽~";
            //ImageSystem.ImageClick(right, rect[rect_y]);
            ImageSystem.ImageClickHS(right, new Rectangle(rect[rect_y].X, Mouse.y, rect[rect_y].Width, rect[rect_y].Height - (Mouse.y - rect[rect_y].Y)));

        }
        if (Keyboard.Check(Keyboard.VK_LEFT))
        {
            Keyboard.Wait(Keyboard.VK_LEFT, false);
            Mouse.Wait(0, false);
            speech = "왼쪽~";
            //ImageSystem.ImageClick(left, rect[rect_y]);
            ImageSystem.ImageClickHS(left, new Rectangle(rect[rect_y].X, Mouse.y, rect[rect_y].Width, rect[rect_y].Height - (Mouse.y - rect[rect_y].Y)));

        }
    }

    switch (mode)
    {
        case 1000:
            if (Keyboard.Check(Keyboard.VK_NUMPAD1))
            {
                speech = "검색";
                Keyboard.Wait(Keyboard.VK_NUMPAD1, false);
                Mouse.Wait(0, false);
                naver_outo();
            }
            if (Keyboard.Check(Keyboard.VK_NUMPAD2))
            {
                speech = "상품상태";
                Keyboard.Wait(Keyboard.VK_NUMPAD2, false);
                Mouse.Wait(0, false);
                naver_outo_V2();
            }
            if (Keyboard.Check(Keyboard.VK_NUMPAD3))
            {
                speech = "서비스 여부";
                Keyboard.Wait(Keyboard.VK_NUMPAD3, false);
                Mouse.Wait(0, false);
                naver_outo_V3();
            }
            break;
        case 2:
            if (Keyboard.Check(Keyboard.VK_NUMPAD1))
            {
                speech = "왼쪽엑셀카피";
                Keyboard.Wait(Keyboard.VK_NUMPAD1, false);
                Mouse.Wait(0, false);
                OutoCopySimpleVa1();
            }
            break;
        default:
            if (Keyboard.Check(Keyboard.VK_DIVIDE))
            {
                Keyboard.Wait(Keyboard.VK_DIVIDE, false);
                Mouse.Wait(0, false);
                speech = "선택한 옵션 매칭할게~";
                ImageSystem.ImageClickHS(selectedOptionMaching, rect[rect_y]);
                ImageSystem.ImageClickHS(TpinSelectMatching, rect[rect_y]);
            }
            if (Keyboard.Check(Keyboard.VK_MULTIPLY))
            {
                Keyboard.Wait(Keyboard.VK_MULTIPLY, false);
                Mouse.Wait(0, false);
                speech = "마우스 반전~";
                if(Mouse.y >(hei/2))
                {
                    Mouse.y -= hei / 2;
                }
                else
                {
                    Mouse.y += hei / 2;
                }
            }
            if (Keyboard.Check(Keyboard.VK_NUMPAD9))
            {
                MousePosPrevious = Mouse.pos;
                //Thread.Sleep(1000);
                Keyboard.Wait(Keyboard.VK_NUMPAD9, false);
                Mouse.Wait(0, false);



                if (mode == 4)
                {
                    speech = "풀오토 왼쪽복사시스템 테스트할게~";




                    fulloutocopytest3(4);
                }
                else
                {
                    speech = "왼쪽복사시스템 테스트할게~";
                    outocopytest10(4);
                }


                Mouse.pos = MousePosPrevious;
            }
            if (Keyboard.Check(Keyboard.VK_NUMPAD8))
            {
                speech = "자동검색 4번째 시스템이야~";
                MousePosPrevious = Mouse.pos;
                Thread.Sleep(1000);
                Keyboard.Wait(Keyboard.VK_NUMPAD8, false);
                Mouse.Wait(0, false);

                OutoSearchTest4();

                Mouse.pos = MousePosPrevious;
            }
            if (Keyboard.Check(Keyboard.VK_NUMPAD7))
            {
                Keyboard.Wait(Keyboard.VK_NUMPAD7, false);
                Mouse.Wait(0, false);
                if (mode == 4)
                {
                    speech = "풀오토 복사시스템 테스트할게~";




                    fulloutocopytest3(6);
                }
                else
                { 
                    speech = "복사시스템 테스트할게~";
                    MousePosPrevious = Mouse.pos;
                    outocopytest10(6);
                    Mouse.pos = MousePosPrevious;
                }
            }
            if (Keyboard.Check(Keyboard.VK_NUMPAD6))
            {
                speech = "왼쪽 자동복사야~";
                Keyboard.Wait(Keyboard.VK_NUMPAD6, false);
                Mouse.Wait(0, false);

                MousePosPrevious = Mouse.pos;
                outocopytest8(4);
                Mouse.pos = MousePosPrevious;
            }
            if (Keyboard.Check(Keyboard.VK_NUMPAD5))
            {
                speech = "자동검색 2번째 시스템";
                Thread.Sleep(0x7d0);
                Keyboard.Wait(Keyboard.VK_NUMPAD5, false);
                Mouse.Wait(0, false);
                OutoSearch();
            }
            if (Keyboard.Check(Keyboard.VK_NUMPAD4))
            {
                speech = "자동복사 시스템이야~";
                Keyboard.Wait(Keyboard.VK_NUMPAD4, false);
                Mouse.Wait(0, false);

                if (mode == 4)
                {
                    speech = "풀오토 복사시스템 테스트할게~";

                    fulloutocopytest2(6);
                }
                else
                {
                    speech = "반자동 복사야~";
                    MousePosPrevious = Mouse.pos;
                    if(speed_mode>0)
                    {
                        outocopytest8(6);
                    }
                    else
                    {
                        outocopytest8(6);
                    }
                    Mouse.pos = MousePosPrevious;
                }
            }
            if (Keyboard.Check(Keyboard.VK_NUMPAD1))
            {
                speech = "수동복사야~";
                Keyboard.Wait(Keyboard.VK_NUMPAD1, false);
                Mouse.Wait(0, false);
                OutoCopySimple();
            }
            if (Keyboard.Check(Keyboard.VK_NUMPAD3))
            {
                Keyboard.Wait(Keyboard.VK_NUMPAD3, false);
                Mouse.Wait(0, false);
                if (mode == 1)
                {

                    speech = "카테복원시스템이야~";

                    caterepair();

                }
                else
                {

                    speech = "왼쪽수동복사 시스템이야~";
                    MousePosPrevious = Mouse.pos;
                    OutoCopyV2();
                    Mouse.pos = MousePosPrevious;
                    Mouse.y += 19 + 9;
                    Mouse.Click(0);
                }
            }
            if (Keyboard.Check(Keyboard.VK_NUMPAD2))
            {
                //speech = "자동서치 3번째 시스템이야";
                //Thread.Sleep(1000);
                //Keyboard.Wait(Keyboard.VK_NUMPAD2, false);
                Mouse.Wait(0, false);
                //OutoSearchTest3();

                MousePosPrevious = Mouse.pos;
                if (Keyboard.Check(Keyboard.VK_SHIFT))
                {
                    Keyboard.Wait(Keyboard.VK_SHIFT, false);
                    Keyboard.Wait(Keyboard.VK_NUMPAD2, false);
                    speech = "자동검색이야~";
                    OutoSearchFirst();
                }
                else
                {
                    Keyboard.Wait(Keyboard.VK_NUMPAD2, false);
                    speech = "단순검색이야~ 시작할게";
                    OutoSearchSimple();
                }
                Mouse.pos = MousePosPrevious;
            }
            if (Keyboard.Check(Keyboard.VK_NUMPAD0))
            {
                Keyboard.Wait(Keyboard.VK_NUMPAD0, false);
                speech = "카테고리수동복사";
                Mouse.Wait(0, false);
                OutoCopySimpleV3();
            }
            break;
    }
}
speech = "우그으... 그만할게";

speech = "우그으... 어디를 복사해야할지 모르겠어";
speech = "우그으... 옵션명 서치 실패";

speech = "우그으... 그만할게";
speech = "다했어";

public static void OutoSearch()
{
    //듀얼서치
    speech = "듀얼서치 작동";
    int[] y_i = { 0, 0 };
    int[] sleep = { 0, 0 };
    int _break = 0;
    Point[] ClickPos = { Mouse.pos, Mouse.pos };

    speech = "위치파악하고 있어";

    Point[] pointArray;
    for (int i = 0; i < 2; i++)
    {

        pointArray = ImageSystem.ImageSearch(matching_z, rect[rect_y]);
        if (pointArray[0].X != -1)
        {
            ClickPos[i].X = pointArray[0].X + (matching_z.Width / 2);
        }
        else
        {
            for (int j = 0; j < 2; j++)
            {
                pointArray = ImageSystem.ImageSearch(option_matching[j], rect[i]);
                if (pointArray[0].X != -1)
                {
                    ClickPos[i].X = pointArray[0].X + (option_matching[j].Width / 2);
                }
            }
        }
        pointArray = ImageSystem.ImageSearch(right, rect[i]);
        if (pointArray[0].Y != -1)
        {
            ClickPos[i].Y = pointArray[0].Y + ((right.Height / 2) - 20);
        }
        pointArray = ImageSystem.ImageSearch(left, rect[i]);
        if (pointArray[0].Y != -1)
        {
            ClickPos[i].Y = pointArray[0].Y + ((left.Height / 2) - 20);
        }
    }
    speech = "검색중~";
    while (_break < 1)
    {
        if (!Keyboard.CheckToggle(Keyboard.VK_CAPITAL))
        {
            speech = "우그으... 그만할게";
            return;
        }
        else
        {
            _break = 0;
            for (int i = 0; i < 1; i++)
            {
                if (sleep[i] > 0)
                {
                    speech = "대기중이야";
                    sleep[i]--;
                }
                else if (sleep[i] == 0)
                {
                    speech = "확인하고있어";
                    sleep[i] = OutoSearchTest4_part(ref y_i[i], ClickPos[i], rect[i]);
                }
                else
                {
                    _break++;
                }
            }
            Thread.Sleep(10);
        }
    }
    speech = "찾았어";
}

 

'AI' 카테고리의 다른 글

넷째 - 이름없음 -  (0) 2023.03.16
유전알고리즘의 구성요소  (0) 2017.03.21
둘째 -이온-  (0) 2016.01.07
posted by 모카쨩

저사양 유저용 블로그 진입