์ฝ˜ํ…์ธ ๋กœ ๊ฑด๋„ˆ๋›ฐ๊ธฐ

Ultralytics ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ์— ๊ธฐ์—ฌํ•˜๊ธฐ

ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค! ์ €ํฌ์˜ ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ์— ๊ธฐ์—ฌ๋ฅผ ๊ณ ๋ คํ•˜๊ณ  ๊ณ„์‹œ๋‹ค๋‹ˆ Ultralytics ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ์— ๊ธฐ์—ฌํ•ด ์ฃผ์…”์„œ ๊ธฐ์ฉ๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ๋ถ„์˜ ์ฐธ์—ฌ๋Š” ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ํ’ˆ์งˆ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๋ฐ ๋„์›€์ด ๋  ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ „์ฒด ์ปค๋ฎค๋‹ˆํ‹ฐ์—๋„ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ€์ด๋“œ๋Š” ์‹œ์ž‘ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ๋ช…ํ™•ํ•œ ๊ฐ€์ด๋“œ๋ผ์ธ๊ณผ ๋ชจ๋ฒ” ์‚ฌ๋ก€๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

Ultralytics ์˜คํ”ˆ์†Œ์Šค ๊ธฐ์—ฌ์ž

ํ–‰๋™ ๊ฐ•๋ น

๋ชจ๋‘๋ฅผ ํ™˜์˜ํ•˜๊ณ  ํฌ์šฉํ•˜๋Š” ํ™˜๊ฒฝ์„ ์กฐ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ๋ชจ๋“  ๊ธฐ์—ฌ์ž๋Š” ํ–‰๋™ ๊ฐ•๋ น์„ ์ค€์ˆ˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์กด์ค‘, ์นœ์ ˆ, ์ „๋ฌธ์„ฑ์€ ์šฐ๋ฆฌ ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค.

ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ํ†ตํ•œ ๊ธฐ์—ฌ

ํ’€ ๋ฆฌํ€˜์ŠคํŠธ ํ˜•ํƒœ๋กœ ๊ธฐ์—ฌํ•ด ์ฃผ์‹œ๋ฉด ๋Œ€๋‹จํžˆ ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฒ€ํ†  ํ”„๋กœ์„ธ์Šค๋ฅผ ์ตœ๋Œ€ํ•œ ์›ํ™œํ•˜๊ฒŒ ์ง„ํ–‰ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ผ์ฃผ์„ธ์š”:

  1. ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ํฌํฌํ•ฉ๋‹ˆ๋‹ค: Ultralytics YOLO ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ GitHub ๊ณ„์ •์œผ๋กœ ํฌํฌํ•˜์—ฌ ์‹œ์ž‘ํ•˜์„ธ์š”.

  2. ๋ธŒ๋žœ์น˜๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค: ํฌํฌ๋œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋ณ€๊ฒฝ ๋‚ด์šฉ์„ ๋ฐ˜์˜ํ•˜๋Š” ๋ช…ํ™•ํ•˜๊ณ  ์„ค๋ช…์ด ํฌํ•จ๋œ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ ๋ธŒ๋žœ์น˜๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

  3. ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค: ์ฝ”๋“œ๊ฐ€ ํ”„๋กœ์ ํŠธ์˜ ์Šคํƒ€์ผ ๊ฐ€์ด๋“œ๋ผ์ธ์„ ์ค€์ˆ˜ํ•˜๊ณ  ์ƒˆ๋กœ์šด ์˜ค๋ฅ˜๋‚˜ ๊ฒฝ๊ณ ๋ฅผ ์œ ๋ฐœํ•˜์ง€ ์•Š๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

  4. ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํ…Œ์ŠคํŠธํ•ฉ๋‹ˆ๋‹ค: ์ œ์ถœํ•˜๊ธฐ ์ „์— ๋กœ์ปฌ์—์„œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํ…Œ์ŠคํŠธํ•˜์—ฌ ์˜ˆ์ƒ๋Œ€๋กœ ์ž‘๋™ํ•˜๋Š”์ง€, ์ƒˆ๋กœ์šด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”.

  5. ๋ณ€๊ฒฝ ๋‚ด์šฉ์„ ์ปค๋ฐ‹ํ•ฉ๋‹ˆ๋‹ค: ๊ฐ„๊ฒฐํ•˜๊ณ  ์„ค๋ช…์ ์ธ ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๋กœ ๋ณ€๊ฒฝ ๋‚ด์šฉ์„ ์ปค๋ฐ‹ํ•˜์„ธ์š”. ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ํŠน์ • ์ด์Šˆ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒฝ์šฐ ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€์— ์ด์Šˆ ๋ฒˆํ˜ธ๋ฅผ ํฌํ•จํ•˜์„ธ์š”.

  6. ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค: ํฌํฌ๋œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ๋ฉ”์ธ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ( Ultralytics YOLO )๋กœ ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ์ œ์ถœํ•ฉ๋‹ˆ๋‹ค. ๋ณ€๊ฒฝ ์‚ฌํ•ญ๊ณผ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ํ”„๋กœ์ ํŠธ๋ฅผ ์–ด๋–ป๊ฒŒ ๊ฐœ์„ ํ•˜๋Š”์ง€ ๋ช…ํ™•ํ•˜๊ณ  ์ƒ์„ธํ•˜๊ฒŒ ์„ค๋ช…ํ•˜์„ธ์š”.

CLA ์„œ๋ช…

ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ๋ณ‘ํ•ฉํ•˜๋ ค๋ฉด ๋จผ์ € ๊ธฐ์—ฌ์ž ๋ผ์ด์„ ์Šค ๊ณ„์•ฝ(CLA)์— ์„œ๋ช…ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฒ•์  ๊ณ„์•ฝ์€ ์—ฌ๋Ÿฌ๋ถ„์˜ ๊ธฐ์—ฌ์— ์ ์ ˆํ•œ ๋ผ์ด์„ ์Šค๊ฐ€ ๋ถ€์—ฌ๋˜์–ด ํ”„๋กœ์ ํŠธ๊ฐ€ AGPL-3.0 ๋ผ์ด์„ ์Šค์— ๋”ฐ๋ผ ๊ณ„์† ๋ฐฐํฌ๋  ์ˆ˜ ์žˆ๋„๋ก ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ์ œ์ถœํ•˜๋ฉด CLA ๋ด‡์ด ์„œ๋ช… ์ ˆ์ฐจ๋ฅผ ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค. CLA์— ์„œ๋ช…ํ•˜๋ ค๋ฉด PR์— ์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค:

I have read the CLA Document and I sign the CLA

Google-์Šคํƒ€์ผ ๋ฌธ์„œ ๋ฌธ์ž์—ด

์ƒˆ ํ•จ์ˆ˜๋‚˜ ํด๋ž˜์Šค๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ๋Š” Google-์Šคํƒ€์ผ์˜ ๋ฌธ์„œ ๋ฌธ์ž์—ด์„ ํฌํ•จํ•˜์„ธ์š”. ์ด๋Ÿฌํ•œ ๋ฌธ์„œ ๋ฌธ์ž์—ด์€ ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ฝ”๋“œ๋ฅผ ์ดํ•ดํ•˜๊ณ  ์œ ์ง€ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ๋ช…ํ™•ํ•˜๊ณ  ํ‘œ์ค€ํ™”๋œ ๋ฌธ์„œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๋ฌธ์„œ ๋ฌธ์ž์—ด ์˜ˆ์ œ

์ด ์˜ˆ๋Š” Google-์Šคํƒ€์ผ์˜ ๋ฌธ์„œ ๋ฌธ์ž์—ด์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ ๋ชจ๋‘ types ๋Š” ํ•ญ์ƒ ๊ด„ํ˜ธ๋กœ ๋ฌถ์Šต๋‹ˆ๋‹ค(์˜ˆ:, (bool).

def example_function(arg1, arg2=4):
    """
    Example function demonstrating Google-style docstrings.

    Args:
        arg1 (int): The first argument.
        arg2 (int): The second argument, with a default value of 4.

    Returns:
        (bool): True if successful, False otherwise.

    Examples:
        >>> result = example_function(1, 2)  # returns False
    """
    if arg1 == arg2:
        return True
    return False

์ด ์˜ˆ์ œ์—๋Š” Google-์Šคํƒ€์ผ์˜ ๋ฌธ์„œ ๋ฌธ์ž์—ด๊ณผ ์ธ์ˆ˜ ๋ฐ ๋ฐ˜ํ™˜์— ๋Œ€ํ•œ ์œ ํ˜• ํžŒํŠธ๊ฐ€ ๋ชจ๋‘ ํฌํ•จ๋˜์–ด ์žˆ์ง€๋งŒ, ๋‘˜ ์ค‘ ํ•˜๋‚˜๋ฅผ ๋…๋ฆฝ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋„ ํ—ˆ์šฉ๋ฉ๋‹ˆ๋‹ค.

def example_function(arg1: int, arg2: int = 4) -> bool:
    """
    Example function demonstrating Google-style docstrings.

    Args:
        arg1: The first argument.
        arg2: The second argument, with a default value of 4.

    Returns:
        True if successful, False otherwise.

    Examples:
        >>> result = example_function(1, 2)  # returns False
    """
    if arg1 == arg2:
        return True
    return False

๋” ์ž‘๊ฑฐ๋‚˜ ๊ฐ„๋‹จํ•œ ํ•จ์ˆ˜์˜ ๊ฒฝ์šฐ ํ•œ ์ค„์˜ ๋ฌธ์„œ ๋ฌธ์ž์—ด๋กœ ์ถฉ๋ถ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์„œ ๋ฌธ์ž์—ด์€ ํฐ๋”ฐ์˜ดํ‘œ ์„ธ ๊ฐœ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋ฉฐ ์™„์ „ํ•œ ๋ฌธ์žฅ์ด์–ด์•ผ ํ•˜๊ณ  ๋Œ€๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•˜๊ณ  ๋งˆ์นจํ‘œ๋กœ ๋๋‚˜์•ผ ํ•ฉ๋‹ˆ๋‹ค.

def example_small_function(arg1: int, arg2: int = 4) -> bool:
    """Example function with a single-line docstring."""
    return arg1 == arg2

GitHub ์•ก์…˜ CI ํ…Œ์ŠคํŠธ

๋ชจ๋“  ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋Š” ๋ณ‘ํ•ฉ๋˜๊ธฐ ์ „์— GitHub Actions ์ง€์†์  ํ†ตํ•ฉ (CI) ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ…Œ์ŠคํŠธ์—๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ํ”„๋กœ์ ํŠธ์˜ ํ’ˆ์งˆ ํ‘œ์ค€์„ ์ถฉ์กฑํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ ๋ฆฐํŒ…, ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ๋ฐ ๊ธฐํƒ€ ๊ฒ€์‚ฌ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. CI ๊ฒฐ๊ณผ๋ฅผ ๊ฒ€ํ† ํ•˜๊ณ  ๋ฐœ์ƒํ•˜๋Š” ๋ชจ๋“  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์„ธ์š”.

๋ฒ„๊ทธ ์‹ ๊ณ ํ•˜๊ธฐ

๋ฒ„๊ทธ ์‹ ๊ณ ๋Š” ํ”„๋กœ์ ํŠธ์˜ ํ’ˆ์งˆ์„ ์œ ์ง€ํ•˜๋Š” ๋ฐ ํฐ ๋„์›€์ด ๋˜๋ฏ€๋กœ ๋งค์šฐ ์†Œ์ค‘ํ•˜๊ฒŒ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋ฒ„๊ทธ๋ฅผ ์‹ ๊ณ ํ•  ๋•Œ๋Š” ๋ฌธ์ œ๋ฅผ ์ผ๊ด€๋˜๊ฒŒ ์žฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ„๋‹จํ•˜๊ณ  ๋ช…ํ™•ํ•œ ์ฝ”๋“œ ์˜ˆ์ œ์ธ ์ตœ์†Œ ์žฌํ˜„ ๊ฐ€๋Šฅํ•œ ์˜ˆ์ œ๋ฅผ์ œ๊ณตํ•ด ์ฃผ์„ธ์š”. ์ด๋ฅผ ํ†ตํ•ด ๋ฌธ์ œ๋ฅผ ์‹ ์†ํ•˜๊ฒŒ ํŒŒ์•…ํ•˜๊ณ  ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ผ์ด์„ ์Šค

Ultralytics ๋Š” ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— GNU Affero ์ผ๋ฐ˜ ๊ณต์ค‘ ๋ผ์ด์„ ์Šค v3.0(AGPL-3.0 )์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ผ์ด์„ ์Šค๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์˜ ๊ฐœ๋ฐฉ์„ฑ, ํˆฌ๋ช…์„ฑ, ํ˜‘์—…์  ๊ฐœ์„ ์„ ์ด‰์ง„ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์‚ฌ์šฉ์ž๊ฐ€ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์ž์œ ๋กญ๊ฒŒ ์‚ฌ์šฉ, ์ˆ˜์ •, ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณด์žฅํ•˜์—ฌ ๊ฐ•๋ ฅํ•œ ํ˜‘์—…๊ณผ ํ˜์‹ ์˜ ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ์กฐ์„ฑํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  ๊ธฐ์—ฌ์ž๋Š” Ultralytics ์˜คํ”ˆ์†Œ์Šค ์ปค๋ฎค๋‹ˆํ‹ฐ์— ํšจ๊ณผ์ ์ด๊ณ  ์œค๋ฆฌ์ ์œผ๋กœ ๊ธฐ์—ฌํ•˜๊ธฐ ์œ„ํ•ด AGPL-3.0 ๋ผ์ด์„ ์Šค ์•ฝ๊ด€์„ ์ˆ™์ง€ํ•  ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

YOLO ๋ฐ AGPL-3.0 ๊ทœ์ • ์ค€์ˆ˜๋ฅผ ํ†ตํ•œ ํ”„๋กœ์ ํŠธ ์˜คํ”ˆ์†Œ์Šคํ™”

YOLO ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž์ฒด ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฐœ๋ฐœ ๋ฐ ์ถœ์‹œํ•˜๋ ค๋Š” ๊ฒฝ์šฐ, GNU Affero ์ผ๋ฐ˜ ๊ณต์ค‘ ๋ผ์ด์„ ์Šค v3.0(AGPL-3.0 )์— ๋”ฐ๋ผ ๋ชจ๋“  ํŒŒ์ƒ ์ €์ž‘๋ฌผ์ด ๊ณต๊ฐœ ๋ฐ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. ์ด ์„น์…˜์—์„œ๋Š” AGPL-3.0 ์„ ์ค€์ˆ˜ํ•˜๋ฉด์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ์˜คํ”ˆ์†Œ์Šคํ™”ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ๋‹จ๊ณ„, ๋ชจ๋ฒ” ์‚ฌ๋ก€ ๋ฐ ์š”๊ตฌ ์‚ฌํ•ญ์„ ํฌํ•จํ•œ ์ง€์นจ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ ์‹œ์ž‘ ์˜ต์…˜

์ด๋Ÿฌํ•œ ์ ‘๊ทผ ๋ฐฉ์‹ ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

  1. Ultralytics YOLO ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ํฌํฌ
    ๊ณต์‹ Ultralytics YOLO ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ https://github.com/ultralytics/ ultralytics ์—์„œ ์ง์ ‘ ํฌํฌํ•ฉ๋‹ˆ๋‹ค.

    • ์ตœ์‹  YOLO ๊ตฌํ˜„์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ง์ ‘ ๋นŒ๋“œํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • AGPL-3.0 ์„ ์ค€์ˆ˜ํ•˜๋ฉด์„œ ํ•„์š”์— ๋”ฐ๋ผ ํฌํฌ๋œ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.
  2. Ultralytics ํ…œํ”Œ๋ฆฟ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ์‹œ์ž‘
    https://github.com/ ultralytics/template์—์„œ ์ œ๊ณต๋˜๋Š” Ultralytics ํ…œํ”Œ๋ฆฟ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.

    • ๋ฏธ๋ฆฌ ๊ตฌ์„ฑ๋œ ๋ชจ๋ฒ” ์‚ฌ๋ก€๋กœ ๊น”๋”ํ•œ ๋ชจ๋“ˆ์‹ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๋ฐ ์ด์ƒ์ ์ž…๋‹ˆ๋‹ค.
    • ์ด ์˜ต์…˜์€ YOLO ๋ชจ๋ธ์„ ํ†ตํ•ฉํ•˜๊ฑฐ๋‚˜ ํ™•์žฅํ•˜๋Š” ํ”„๋กœ์ ํŠธ์— ๊ฐ€๋ฒผ์šด ์‹œ์ž‘์ ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์˜คํ”ˆ์†Œ์Šค์— ํ•„์š”ํ•œ ๊ฒƒ

AGPL-3.0 ์„ ์ค€์ˆ˜ํ•˜๋ ค๋ฉด ํ”„๋กœ์ ํŠธ์˜ ๋‹ค์Œ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๊ณต๊ฐœ์ ์œผ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค:

  1. ์ „์ฒด ํ”„๋กœ์ ํŠธ ์†Œ์Šค ์ฝ”๋“œ:

    • YOLO ๋ชจ๋ธ, ์Šคํฌ๋ฆฝํŠธ ๋ฐ ์œ ํ‹ธ๋ฆฌํ‹ฐ๊ฐ€ ํฌํ•จ๋œ ๋” ํฐ ํ”„๋กœ์ ํŠธ์˜ ๋ชจ๋“  ์ฝ”๋“œ๋ฅผ ํฌํ•จํ•˜์„ธ์š”.
  2. ๋ชจ๋ธ ๊ฐ€์ค‘์น˜ (์ˆ˜์ •๋œ ๊ฒฝ์šฐ):

    • ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ์˜ ์ผ๋ถ€๋กœ ๋ฏธ์„ธ ์กฐ์ •๋˜๊ฑฐ๋‚˜ ์ˆ˜์ •๋œ ๋ชจ๋ธ ๊ฐ€์ค‘์น˜๋ฅผ ๊ณต์œ ํ•˜์„ธ์š”.
  3. ๊ตฌ์„ฑ ํŒŒ์ผ:

    • ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ตฌ์„ฑ ํŒŒ์ผ์„ ์ œ๊ณตํ•˜์„ธ์š”. .yaml ๋˜๋Š” .json ํŠธ๋ ˆ์ด๋‹ ์„ค์ •, ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ ๋˜๋Š” ๋ฐฐํฌ ๊ตฌ์„ฑ์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
  4. ํ•™์Šต ๋ฐ์ดํ„ฐ(์žฌ๋ฐฐํฌ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ):

    • ์žฌ๋ฐฐํฌ๊ฐ€ ๊ฐ€๋Šฅํ•œ ์ „์ฒ˜๋ฆฌ ๋˜๋Š” ์ƒ์„ฑ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•  ๊ฒฝ์šฐ, ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ์ผ๋ถ€์ด๊ฑฐ๋‚˜ ๋ช…ํ™•ํ•˜๊ฒŒ ๋งํฌ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”.
  5. ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ์„ฑ ์š”์†Œ:

    • ํ”„๋กœ์ ํŠธ๊ฐ€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ธ ๊ฒฝ์šฐ ๋ชจ๋“  ๋ฐฑ์—”๋“œ ๋ฐ ํ”„๋ก ํŠธ์—”๋“œ ์†Œ์Šค ์ฝ”๋“œ, ํŠนํžˆ ์„œ๋ฒ„ ์ธก ์ปดํฌ๋„ŒํŠธ๋ฅผ ํฌํ•จํ•˜์„ธ์š”.
  6. ๋ฌธ์„œํ™”:

    • ํ”„๋กœ์ ํŠธ ์‚ฌ์šฉ, ๋นŒ๋“œ ๋ฐ ํ™•์žฅ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๋ช…ํ™•ํ•œ ์„ค๋ช…์„œ๋ฅผ ํฌํ•จํ•˜์„ธ์š”.
  7. ๋นŒ๋“œ ๋ฐ ๋ฐฐํฌ ์Šคํฌ๋ฆฝํŠธ:

    • ํ™˜๊ฒฝ ์„ค์ •, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋นŒ๋“œ ๋ฐ ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๊ณต์œ ํ•˜์„ธ์š”. Dockerfiles, requirements.txt๋˜๋Š” Makefiles.
  8. ํ…Œ์ŠคํŠธ ํ”„๋ ˆ์ž„์›Œํฌ:

    • ๋‹จ์œ„ ๋ฐ ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ์™€ ๊ฐ™์€ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ์˜คํ”ˆ์†Œ์Šคํ™”ํ•˜์—ฌ ์žฌํ˜„์„ฑ๊ณผ ์•ˆ์ •์„ฑ์„ ๋ณด์žฅํ•˜์„ธ์š”.
  9. ํƒ€์‚ฌ ์ˆ˜์ •:

    • ์ˆ˜์ •ํ•œ ํƒ€์‚ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ œ๊ณตํ•˜์„ธ์š”.

ํ”„๋กœ์ ํŠธ ์˜คํ”ˆ์†Œ์Šคํ™” ๋‹จ๊ณ„

  1. ์‹œ์ž‘ ์ง€์ ์„ ์„ ํƒํ•˜์„ธ์š”:

    • Ultralytics YOLO ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ํฌํฌํ•˜๊ฑฐ๋‚˜ Ultralytics ํ…œํ”Œ๋ฆฟ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ์‹œ์ž‘ํ•˜์„ธ์š”.
  2. ๋ผ์ด์„ ์Šค ์„ค์ •:

    • ์ถ”๊ฐ€ LICENSE AGPL-3.0 ํ…์ŠคํŠธ๊ฐ€ ํฌํ•จ๋œ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.
  3. ํฌ๋ ˆ๋”ง ์—…์ŠคํŠธ๋ฆผ ๊ธฐ์—ฌ:

    • README์— Ultralytics YOLO ์— ๋Œ€ํ•œ ์ €์ž‘์ž ํ‘œ์‹œ๋ฅผ ํฌํ•จํ•˜์„ธ์š”. ์˜ˆ๋ฅผ ๋“ค์–ด
      This project builds on [Ultralytics YOLO](https://github.com/ultralytics/ultralytics), licensed under AGPL-3.0.
      
  4. ์ฝ”๋“œ๋ฅผ ๊ณต๊ฐœํ•˜์„ธ์š”:

    • ์ „์ฒด ํ”„๋กœ์ ํŠธ(์œ„์— ๋‚˜์—ด๋œ ๊ตฌ์„ฑ ์š”์†Œ ํฌํ•จ)๋ฅผ ๊ณต๊ฐœ GitHub ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ํ‘ธ์‹œํ•ฉ๋‹ˆ๋‹ค.
  5. ํ”„๋กœ์ ํŠธ๋ฅผ ๋ฌธ์„œํ™”ํ•˜์„ธ์š”:

    • ๋ช…ํ™•ํ•˜๊ฒŒ ์ž‘์„ฑ README.md ์„ค์ •, ์‚ฌ์šฉ ๋ฐ ๊ธฐ์—ฌ์— ๋Œ€ํ•œ ์ง€์นจ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  6. ๊ธฐ์—ฌ๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค:

    • ์ด์Šˆ ํŠธ๋ž˜์ปค์™€ ๊ธฐ์—ฌ ๊ฐ€์ด๋“œ๋ผ์ธ์„ ์„ค์ •ํ•˜์—ฌ ํ˜‘์—…์„ ์ด‰์ง„ํ•˜์„ธ์š”.

์ด ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด๊ณ  ํ•„์š”ํ•œ ๋ชจ๋“  ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ํฌํ•จํ•˜๋ฉด AGPL-3.0 ์„ ์ค€์ˆ˜ํ•˜๊ณ  ์˜คํ”ˆ ์†Œ์Šค ์ปค๋ฎค๋‹ˆํ‹ฐ์— ์˜๋ฏธ ์žˆ๋Š” ๊ธฐ์—ฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•ž์œผ๋กœ๋„ ์ปดํ“จํ„ฐ ๋น„์ „์˜ ํ˜‘์—…๊ณผ ํ˜์‹ ์„ ํ•จ๊ป˜ ์ด‰์ง„ํ•ด ๋‚˜๊ฐ‘์‹œ๋‹ค! ๐Ÿš€

๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๊ตฌ์กฐ ์˜ˆ์‹œ

์•„๋ž˜๋Š” AGPL-3.0 ํ”„๋กœ์ ํŠธ์˜ ๊ตฌ์กฐ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ https://github.com/ultralytics /template๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

my-yolo-project/
โ”‚
โ”œโ”€โ”€ LICENSE               # AGPL-3.0 license text
โ”œโ”€โ”€ README.md             # Project overview and license information
โ”œโ”€โ”€ src/                  # Source code for the project
โ”‚   โ”œโ”€โ”€ model.py          # YOLO-based model implementation
โ”‚   โ”œโ”€โ”€ utils.py          # Utility scripts
โ”‚   โ””โ”€โ”€ ...
โ”œโ”€โ”€ pyproject.toml        # Python dependencies
โ”œโ”€โ”€ tests/                # Unit and integration tests
โ”œโ”€โ”€ .github/              # GitHub Actions for CI
โ”‚   โ””โ”€โ”€ workflows/
โ”‚       โ””โ”€โ”€ ci.yml        # Continuous integration configuration
โ””โ”€โ”€ docs/                 # Project documentation
    โ””โ”€โ”€ index.md

์ด ๊ฐ€์ด๋“œ๋ฅผ ๋”ฐ๋ฅด๋ฉด ํ”„๋กœ์ ํŠธ๊ฐ€ AGPL-3.0 ์„ ์ค€์ˆ˜ํ•˜๋Š” ๋™์‹œ์— ์˜คํ”ˆ์†Œ์Šค ์ปค๋ฎค๋‹ˆํ‹ฐ์— ๊ธฐ์—ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ๋ถ„์˜ ์ค€์ˆ˜๋Š” YOLO ๊ณผ ๊ฐ™์€ ํ”„๋กœ์ ํŠธ์˜ ์„ฑ๊ณต์„ ์ด๋„๋Š” ํ˜‘์—…, ํˆฌ๋ช…์„ฑ ๋ฐ ์ ‘๊ทผ์„ฑ์˜ ์ •์‹ ์„ ๊ฐ•ํ™”ํ•ฉ๋‹ˆ๋‹ค.

๊ฒฐ๋ก 

์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ์— ๊ด€์‹ฌ์„ ๊ฐ€์ ธ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. Ultralytics ์˜คํ”ˆ์†Œ์Šค YOLO ํ”„๋กœ์ ํŠธ์— ๊ธฐ์—ฌํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ๋ถ„์˜ ์ฐธ์—ฌ๋Š” ์†Œํ”„ํŠธ์›จ์–ด์˜ ๋ฏธ๋ž˜๋ฅผ ๋งŒ๋“ค๊ณ  ํ˜์‹ ๊ณผ ํ˜‘์—…์˜ ํ™œ๊ธฐ์ฐฌ ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐ ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค. ์ฝ”๋“œ๋ฅผ ๊ฐœ์„ ํ•˜๊ฑฐ๋‚˜ ๋ฒ„๊ทธ๋ฅผ ๋ณด๊ณ ํ•˜๊ฑฐ๋‚˜ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ œ์•ˆํ•˜๋Š” ๋“ฑ ์—ฌ๋Ÿฌ๋ถ„์˜ ๊ธฐ์—ฌ๋Š” ๋งค์šฐ ์†Œ์ค‘ํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ๋ถ„์˜ ์•„์ด๋””์–ด๊ฐ€ ์‹คํ˜„๋˜๋Š” ๊ฒƒ์„ ๋ณด๊ฒŒ ๋˜์–ด ๊ธฐ์˜๊ณ , ๋ฌผ์ฒด ์ธ์‹ ๊ธฐ์ˆ ์„ ๋ฐœ์ „์‹œํ‚ค๊ธฐ ์œ„ํ•œ ์—ฌ๋Ÿฌ๋ถ„์˜ ๋…ธ๋ ฅ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ๋ถ„๊ณผ ํ•จ๊ป˜ ์ด ํฅ๋ฏธ์ง„์ง„ํ•œ ์˜คํ”ˆ์†Œ์Šค ์—ฌ์ •์—์„œ ๊ณ„์† ์„ฑ์žฅํ•˜๊ณ  ํ˜์‹ ํ•ด ๋‚˜๊ฐ‘์‹œ๋‹ค. ํ–‰๋ณตํ•œ ์ฝ”๋”ฉ! ๐Ÿš€๐ŸŒŸ

์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ

Ultralytics YOLO ์˜คํ”ˆ์†Œ์Šค ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๊ธฐ์—ฌํ•ด์•ผ ํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?

Ultralytics YOLO ์˜คํ”ˆ ์†Œ์Šค ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๊ธฐ์—ฌํ•˜๋ฉด ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ๊ฐœ์„ ๋˜์–ด ์ „์ฒด ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ์œ„ํ•ด ๋”์šฑ ๊ฐ•๋ ฅํ•˜๊ณ  ํ’๋ถ€ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์—ฌ์—๋Š” ์ฝ”๋“œ ๊ฐœ์„ , ๋ฒ„๊ทธ ์ˆ˜์ •, ๋ฌธ์„œ ๊ฐœ์„  ๋ฐ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ๊ตฌํ˜„์ด ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, ๊ธฐ์—ฌ๋ฅผ ํ†ตํ•ด ํ•ด๋‹น ๋ถ„์•ผ์˜ ๋‹ค๋ฅธ ์ˆ™๋ จ๋œ ๊ฐœ๋ฐœ์ž ๋ฐ ์ „๋ฌธ๊ฐ€์™€ ํ˜‘์—…ํ•˜์—ฌ ์ž์‹ ์˜ ๊ธฐ์ˆ ๊ณผ ํ‰ํŒ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹œ์ž‘ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ํ†ตํ•ด ๊ธฐ์—ฌํ•˜๊ธฐ ์„น์…˜์„ ์ฐธ์กฐํ•˜์„ธ์š”.

Ultralytics YOLO ์— ๋Œ€ํ•œ ๊ธฐ์—ฌ์ž ๋ผ์ด์„ ์Šค ๊ณ„์•ฝ(CLA)์— ์–ด๋–ป๊ฒŒ ์„œ๋ช…ํ•˜๋‚˜์š”?

๊ธฐ์—ฌ์ž ๋ผ์ด์„ ์Šค ๊ณ„์•ฝ(CLA)์— ์„œ๋ช…ํ•˜๋ ค๋ฉด ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ์ œ์ถœํ•œ ํ›„ CLA ๋ด‡์ด ์ œ๊ณตํ•˜๋Š” ์ง€์นจ์„ ๋”ฐ๋ฅด์„ธ์š”. ์ด ํ”„๋กœ์„ธ์Šค๋ฅผ ํ†ตํ•ด ์—ฌ๋Ÿฌ๋ถ„์˜ ๊ธฐ์—ฌ๊ฐ€ AGPL-3.0 ๋ผ์ด์„ ์Šค์— ๋”ฐ๋ผ ์ ์ ˆํ•˜๊ฒŒ ๋ผ์ด์„ ์Šค๊ฐ€ ๋ถ€์—ฌ๋˜์–ด ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ์˜ ๋ฒ•์  ๋ฌด๊ฒฐ์„ฑ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ’€ ๋ฆฌํ€˜์ŠคํŠธ์— ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜์„ธ์š”:

I have read the CLA Document and I sign the CLA.

์ž์„ธํ•œ ๋‚ด์šฉ์€ CLA ์„œ๋ช… ์„น์…˜์„ ์ฐธ์กฐํ•˜์„ธ์š”.

Google-์Šคํƒ€์ผ ๋ฌธ์„œ ๋ฌธ์ž์—ด์ด๋ž€ ๋ฌด์—‡์ด๋ฉฐ Ultralytics YOLO ๊ธฐ์—ฌ์— ํ•„์š”ํ•œ ์ด์œ ๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?

Google-์Šคํƒ€์ผ ๋…์ŠคํŠธ๋ง์€ ํ•จ์ˆ˜์™€ ํด๋ž˜์Šค์— ๋Œ€ํ•œ ๋ช…ํ™•ํ•˜๊ณ  ๊ฐ„๊ฒฐํ•œ ๋ฌธ์„œ๋ฅผ ์ œ๊ณตํ•˜์—ฌ ์ฝ”๋“œ ๊ฐ€๋…์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋…์ŠคํŠธ๋ง์€ ํ•จ์ˆ˜์˜ ๋ชฉ์ , ์ธ์ˆ˜, ๋ฐ˜ํ™˜๊ฐ’์„ ํŠน์ • ์„œ์‹ ๊ทœ์น™๊ณผ ํ•จ๊ป˜ ๊ฐ„๋žตํ•˜๊ฒŒ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. Ultralytics YOLO ์— ๊ธฐ์—ฌํ•˜์‹ค ๋•Œ Google-์Šคํƒ€์ผ์˜ ๋ฌธ์„œ ๋ฌธ์ž์—ด์„ ๋”ฐ๋ฅด๋ฉด ์ถ”๊ฐ€ํ•œ ๋‚ด์šฉ์ด ์ž˜ ๋ฌธ์„œํ™”๋˜๊ณ  ์‰ฝ๊ฒŒ ์ดํ•ด๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ์ œ์™€ ๊ฐ€์ด๋“œ๋ผ์ธ์€ Google-์Šคํƒ€์ผ ๋…์ŠคํŠธ๋ง ์„น์…˜์„ ์ฐธ์กฐํ•˜์„ธ์š”.

๋‚ด ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด GitHub Actions CI ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•˜๋‚˜์š”?

ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ๋ณ‘ํ•ฉํ•˜๋ ค๋ฉด ๋จผ์ € ๋ชจ๋“  GitHub Actions ์ง€์†์  ํ†ตํ•ฉ(CI) ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ…Œ์ŠคํŠธ์—๋Š” ๋ฆฐํŒ…, ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ๋ฐ ์ฝ”๋“œ๊ฐ€ ๋‹ค์Œ์„ ์ถฉ์กฑํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐํƒ€ ๊ฒ€์‚ฌ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ์˜ ํ’ˆ์งˆ ํ‘œ์ค€์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. CI ๊ฒฐ๊ณผ๋ฌผ์„ ๊ฒ€ํ† ํ•˜๊ณ  ๋ฌธ์ œ๋ฅผ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค. CI ํ”„๋กœ์„ธ์Šค ๋ฐ ๋ฌธ์ œ ํ•ด๊ฒฐ ํŒ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ GitHub Actions CI ํ…Œ์ŠคํŠธ ์„น์…˜์„ ์ฐธ์กฐํ•˜์„ธ์š”.

Ultralytics YOLO ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ๋ฒ„๊ทธ๋ฅผ ์‹ ๊ณ ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•˜๋‚˜์š”?

๋ฒ„๊ทธ๋ฅผ ์‹ ๊ณ ํ•˜๋ ค๋ฉด ๋ฒ„๊ทธ ์‹ ๊ณ ์™€ ํ•จ๊ป˜ ๋ช…ํ™•ํ•˜๊ณ  ๊ฐ„๊ฒฐํ•œ ์ตœ์†Œ ์žฌํ˜„ ๊ฐ€๋Šฅํ•œ ์˜ˆ์‹œ๋ฅผ ์ œ๊ณตํ•˜์„ธ์š”. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฌธ์ œ๋ฅผ ๋น ๋ฅด๊ฒŒ ํŒŒ์•…ํ•˜๊ณ  ์ˆ˜์ •ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. ์ตœ์†Œํ•œ์˜ ์˜ˆ์ œ์ด์ง€๋งŒ ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ํ•˜๊ธฐ์— ์ถฉ๋ถ„ํ•œ์ง€ ํ™•์ธํ•˜์„ธ์š”. ๋ฒ„๊ทธ ์‹ ๊ณ ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‹จ๊ณ„๋Š” ๋ฒ„๊ทธ ์‹ ๊ณ ํ•˜๊ธฐ ์„น์…˜์„ ์ฐธ์กฐํ•˜์„ธ์š”.

๐Ÿ“…1 ๋…„ ์ „ ์ƒ์„ฑ๋จ โœ๏ธ 10 ์ผ ์ „ ์—…๋ฐ์ดํŠธ๋จ

๋Œ“๊ธ€