Visión por computadora (medición monocular)

Prefacio

El profesor ha estado enseñando conocimientos en esta dirección durante varias clases, pero yo he estado remando, así que pensé que no debería ponerme al día más, tal vez tendría que enviarlo, así que tengo este artículo.

texto

Primero, echemos un vistazo al esquema: ¿de qué habla el esquema?

  • Modelado para canalización de imágenes: modele el proceso de imágenes de la cámara, incluidos factores como la distorsión óptica, los parámetros internos y externos de la cámara.
  • Marco general para el algoritmo de calibración de la cámara: el marco general del algoritmo de calibración de la cámara, que incluye pasos como la adquisición de imágenes de la placa de calibración, la extracción de características, la estimación de los parámetros de la cámara y la optimización de errores.
  • Estimación aproximada inicial de los parámetros de calibración: una estimación preliminar de los parámetros internos y externos de la cámara para proporcionar valores iniciales para el algoritmo de calibración.
  • Mínimos cuadrados no lineales: un método de optimización común utilizado para estimar los parámetros de calibración de la cámara minimizando el error residual entre los datos observados y el modelo.
  • Generación de vista de pájaro: utilice los parámetros de calibración de la cámara para convertir las imágenes de la cámara en una vista de pájaro para proporcionar una observación y medición de la escena más global.
  • Calibración de la cámara (diablos, esta es la primera que olvidé agregar)

De todos modos, comencemos con la calibración de la cámara.

Calibración de cámara

La calibración de la cámara consiste en determinar los parámetros internos y externos de la cámara para que pueda medir y reconstruir con precisión objetos en el mundo tridimensional. La calibración de la cámara es crucial para muchas aplicaciones de visión por computadora y gráficos por computadora, como detección de objetos, estimación de pose, realidad virtual, etc.

El proceso de calibración de la cámara incluye los siguientes pasos:

1. Recopilación de datos: antes de calibrar la cámara, se debe recopilar un conjunto de imágenes o vídeos de referencia conocidos. Normalmente se utiliza una placa de calibración o un objeto de calibración que tiene una geometría y dimensiones conocidas.

2. Extracción de características: extraiga puntos de características de las imágenes recopiladas para una posterior estimación de los parámetros de la cámara. Los puntos característicos de uso común incluyen puntos de esquina, líneas o texturas, etc.

3. Estimación de parámetros internos: los parámetros internos se refieren a las características ópticas y los parámetros de imagen de la cámara, como la distancia focal, la posición del punto principal, el tamaño de píxel, etc. Estos parámetros internos se pueden estimar analizando y calculando los puntos característicos en la imagen de la placa de calibración.

4. Estimación de parámetros externos: los parámetros externos se refieren a la posición y actitud de la cámara en relación con el sistema de coordenadas mundial, también llamada pose de la cámara. Al colocar la placa de calibración en una posición y actitud conocidas y combinar la información del punto característico en la imagen de la cámara, se pueden estimar los parámetros externos de la cámara.

5. Corrección de distorsión: la distorsión óptica es un tipo de distorsión en el proceso de imagen de la cámara, que puede causar deformación en línea recta o distorsión de forma en la imagen. En la calibración de la cámara, la distorsión óptica también suele modelarse y corregirse para mejorar la precisión de la medición.

6. Optimización de errores: al realizar la calibración de la cámara, generalmente hay algunos errores de medición. Para mejorar la precisión de la calibración, se pueden utilizar métodos de optimización como el método de mínimos cuadrados no lineales para optimizar los resultados de la estimación de los parámetros de la cámara minimizando el error residual entre los datos de observación y el modelo.

Después de completar los pasos anteriores, se pueden obtener los parámetros internos y externos de la cámara, lo que le permite medir y reconstruir con precisión los objetos en la escena. Estos parámetros se pueden utilizar en diversas aplicaciones de visión por computadora y gráficos por computadora, como detección de objetos, seguimiento de cámaras, reconstrucción 3D, etc.

Cabe señalar que la precisión y exactitud de la calibración de la cámara son fundamentales para el éxito de la aplicación. Por lo tanto, al realizar la calibración de la cámara, es necesario seleccionar cuidadosamente el objeto de calibración, organizar razonablemente la colección de imágenes de calibración y realizar un análisis y corrección de errores adecuados para garantizar la confiabilidad de los resultados de la calibración.

Modelado de tuberías de imágenes

Este es el proceso en PPT. Para expandirlo, para modelar el proceso de formación de imágenes, se deben usar cuatro sistemas de coordenadas para describir la conversión y transformación de coordenadas en diferentes etapas. Estos sistemas de coordenadas incluyen:

1. Sistema de coordenadas mundial: el sistema de coordenadas mundial es un sistema de coordenadas en un espacio tridimensional, que se utiliza para describir la posición y actitud de los objetos en la escena. En el sistema de coordenadas mundial, la posición y orientación de un objeto se determinan en relación con un punto de referencia u objeto de referencia.

2. Sistema de coordenadas de la cámara: el sistema de coordenadas de la cámara es el sistema de coordenadas dentro de la cámara y se utiliza para describir la posición y orientación de la cámara. El origen del sistema de coordenadas de la cámara generalmente se encuentra en el centro óptico (centro óptico) de la cámara y el eje de coordenadas está alineado con el eje óptico de la cámara.

3. Sistema de coordenadas de la retina: el sistema de coordenadas de la retina es el sistema de coordenadas del sensor de la cámara y se utiliza para describir la posición de los píxeles en el sensor de la cámara. El origen del sistema de coordenadas de la retina suele estar situado en el centro del sensor, con los ejes de coordenadas alineados con el plano del sensor.

4. Sistema de coordenadas de retina normalizado: el sistema de coordenadas de retina normalizado es la forma de transformación del sistema de coordenadas de retina. Al normalizar las coordenadas de píxeles al rango [0, 1], facilita el procesamiento de imágenes y los cálculos algorítmicos.

5. Sistema de coordenadas de píxeles: el sistema de coordenadas de píxeles es el sistema de coordenadas de la imagen final y se utiliza para describir la posición de los píxeles en la imagen. En el sistema de coordenadas de píxeles, la imagen se divide en cuadrículas de píxeles discretas y cada cuadrícula de píxeles tiene una coordenada única.

Combinando las transformaciones anteriores, tenemos:

Las relaciones de conversión y transformación entre estos sistemas de coordenadas son pasos críticos en el proceso de obtención de imágenes. Por ejemplo, la transformación del sistema de coordenadas mundial al sistema de coordenadas de la cámara involucra los parámetros externos de la cámara (posición y actitud); la transformación del sistema de coordenadas de la cámara al sistema de coordenadas de la retina involucra los parámetros internos de la cámara (distancia focal , posición del punto principal, etc.); del sistema de coordenadas de la retina La conversión del sistema al sistema de coordenadas de píxeles implica la resolución de la imagen y el tamaño de los píxeles, etc. Estas relaciones de transformación determinan la posición proyectada y la postura del objeto en la imagen.

Al establecer estos sistemas de coordenadas y las relaciones de conversión entre ellos, se puede comprender y controlar mejor el proceso de formación de imágenes. Esto es muy importante para tareas gráficas y de visión por computadora, como la calibración de la cámara, la estimación de pose y la realidad virtual.

Entonces tenemos que resolver el problema de la distorsión tangencial:

Durante el proceso de toma de imágenes de la cámara, a menudo se produce una distorsión tangencial, que afecta la geometría y la calidad visual de la imagen.

Distorsión tangencial: la distorsión tangencial es causada por la relación no paralela entre la lente de la cámara y el plano de la imagen. Hace que las líneas rectas de una imagen parezcan curvas o torcidas. Para corregir la distorsión tangencial, generalmente se requiere la corrección de la distorsión tangencial de la cámara. Esto se puede lograr mediante modelos ópticos detallados y transformaciones geométricas inversas. Como la imagen de abajo:

El siguiente es el marco general del algoritmo de calibración de la cámara.

Un marco general para algoritmos de calibración de cámaras.

Una imagen muy importante....

Este problema de optimización describe el proceso de calibración de la cámara, con el objetivo de optimizar los parámetros internos y externos de la cámara minimizando la función de error. Los símbolos y pasos se explican en detalle a continuación:

Explicación del símbolo:
- M: Número de imágenes de la placa de calibración.
- N: Número de intersecciones en cada imagen.
- i: El índice de la imagen, que va de 1 a M.
- j: el índice del punto de intersección, el rango de valores es de 1 a N.
- Cij: coordenadas de píxeles (coordenadas proyectadas) del i-ésimo punto de intersección de la imagen.
- Zi: coordenada mundial (coordenada física en la placa de calibración) del i-ésimo punto de intersección de la imagen.
- Θ: Vector de parámetros que debe optimizarse.

Explicación del paso:
1. Según los parámetros internos de la cámara, construya la matriz de parámetros internos K de la cámara. La matriz de parámetros internos K contiene información como la distancia focal, la posición del punto principal y el tamaño de píxel de la cámara.

2. Para cada imagen i y intersección j, calcule sus coordenadas proyectadas Cij (coordenadas de píxeles) en la imagen. Esta coordenada proyectada se puede calcular mediante los parámetros externos de la cámara (matriz de rotación R y vector de traducción t) y la matriz de parámetros internos K de la cámara. Específicamente, de acuerdo con la coordenada mundial Zi, la matriz de rotación R y el vector de traslación t, la coordenada mundial se puede transformar en el sistema de coordenadas de la cámara, y luego la coordenada de la cámara se puede transformar en la coordenada de píxeles a través de la matriz de parámetros internos K.

3. Defina la función de error, que es la suma de los errores de proyección de todos los puntos de intersección en la imagen. Esta función de error mide la precisión de los parámetros de calibración y nuestro objetivo es minimizar esta función de error.

4. Obtenga el vector de parámetros óptimo Θ resolviendo el problema de optimización de minimizar la función de error. Esto se puede lograr mediante diferentes algoritmos de optimización (como mínimos cuadrados, optimización no lineal, etc.).

Durante el proceso de optimización, el vector de parámetros Θ contiene los parámetros internos de la cámara (distancia focal, posición del punto principal y tamaño de píxel) y parámetros externos (matriz de rotación R y vector de traducción t). Al optimizar estos parámetros, se puede obtener un modelo de cámara más preciso, mejorando así la precisión y estabilidad de la calibración de la cámara.

Cabe señalar que este problema de optimización es un problema de optimización no lineal y generalmente requiere un algoritmo iterativo para resolverlo. En aplicaciones prácticas, la posición de intersección conocida en la placa de calibración a menudo se usa como parámetro conocido, y luego los parámetros internos y externos de la cámara se resuelven mediante un algoritmo de optimización. Esto da como resultado un modelo de cámara preciso que se puede utilizar para tareas posteriores de procesamiento de imágenes y visión por computadora.

Estimación aproximada de los parámetros de calibración iniciales.

La tarea de este paso es: dado un conjunto de M imágenes de una placa de calibración plana, estimar los aspectos intrínsecos de la cámara (excepto aquellos relacionados con la distorsión) y los aspectos extrínsecos de la pose de la cámara en el momento en que se tomó cada imagen.

Primero, el parámetro de distorsión se puede marcar como 0. Por lo tanto, en la estimación inicial de otros parámetros, utilizamos el modelo de imagen sin considerar la distorsión.

Antes de calibrar la cámara, normalmente es necesario hacer una estimación aproximada de los parámetros internos y externos de la cámara para proporcionar un punto de partida inicial. Estas estimaciones aproximadas se pueden obtener mediante:

1. Estimación de la distancia focal: puede utilizar la estimación de la distancia focal que figura en las especificaciones técnicas o en la documentación proporcionada por el fabricante de la cámara. Si no hay información relevante disponible, la distancia focal se puede estimar midiendo el tamaño del objeto fotografiado por la cámara. Por ejemplo, al colocar un objeto de tamaño conocido a una distancia conocida y luego medir el tamaño del objeto en la imagen, la distancia focal se puede estimar comparando el tamaño real del objeto con el tamaño de la imagen.

2. Estimación de la posición del punto principal: el punto principal es el centro óptico en el plano de la imagen, generalmente ubicado en el centro de la imagen. La posición del punto principal se puede estimar apuntando la cámara a un fondo uniforme y tomando una imagen, luego calculando la posición central de la imagen.

3. Estimación del tamaño de píxel: el tamaño de píxel es la distancia física entre píxeles adyacentes en el plano de la imagen. Esto se puede estimar a partir del tamaño de píxel que figura en las especificaciones técnicas o en la documentación proporcionada por el fabricante de la cámara. Si no hay información relevante disponible, el tamaño del píxel se puede estimar midiendo la distancia en píxeles de un objeto conocido en la imagen y dividiéndola por el tamaño real del objeto.

4. Estimación de parámetros externos: los parámetros externos incluyen la matriz de rotación R de la cámara y el vector de traducción t. La información de actitud de la cámara se puede estimar utilizando una unidad de medición inercial (IMU) u otros sensores. Estos sensores pueden proporcionar información de rotación y traducción de la cámara, que puede usarse para estimar parámetros externos.

Entonces el PPT empezó a hablar sobre su punto de fuga... ¿Cuál es la función del punto de fuga...?

En la proyección en perspectiva, una característica importante es que los objetos situados a una distancia infinita pueden tener una extensión limitada en la imagen. Por ejemplo, una línea de escena en el infinito se representaría como una línea que termina en un punto de fuga.

Las líneas de mundos paralelos, como las líneas de vías de ferrocarril, se representan como líneas convergentes y su intersección de imagen es el punto de fuga de esa dirección de vía.

Punto de fuga: El punto de fuga de la línea mundial l se puede obtener cortando un rayo paralelo a l y pasando por el centro óptico de la cámara con el plano de imagen. En otras palabras, el punto de fuga es la proyección del punto infinito de la línea del mundo l en el plano de imagen.

Otra definición es que el punto de fuga de la línea mundial l es la proyección del punto infinito de l en el plano de imagen.

Los puntos de fuga son un concepto importante en la proyección en perspectiva, proporcionan información sobre la profundidad y la estructura espacial de una escena. Al identificar y analizar puntos de fuga en imágenes, podemos inferir líneas, planos y direcciones espaciales paralelas en una escena. Esto es útil para muchas aplicaciones de visión por computadora, como corrección de imágenes, detección de objetos y reconstrucción 3D.

Tenga en cuenta que el número de puntos de fuga depende del número y la dirección de las líneas paralelas en la escena. Para escenas con múltiples direcciones de líneas paralelas, puede haber múltiples puntos de fuga. La ubicación del punto de fuga se puede determinar mediante cálculos geométricos o mediante algoritmos de visión por computadora.

Dos líneas de mundos paralelas deben tener el mismo punto infinito; para cada línea, su punto de fuga es la imagen de su punto de infinito; por lo tanto, las imágenes de dos líneas de mundos paralelas convergerán al mismo punto de fuga

Entonces, si tenemos M imágenes de placas de calibración, podemos terminar con 2 M ecuaciones de este tipo, donde podemos resolver fx y fy.

Cabe señalar que estas estimaciones aproximadas son sólo un punto de partida inicial y pueden contener ciertos errores. Durante la calibración de la cámara, estos valores estimados se utilizarán como parámetros iniciales, que luego se optimizarán iterativamente mediante un algoritmo de optimización para obtener parámetros internos y externos de la cámara más precisos. Las ubicaciones de intersecciones conocidas en la placa de calibración también proporcionan información precisa, lo que ayuda a mejorar la precisión de la calibración.

Además, se pueden utilizar múltiples imágenes en diferentes ángulos y distancias para la calibración y aumentar la precisión de los parámetros estimados. Al utilizar varias imágenes, se pueden obtener más restricciones, mejorando así la precisión y estabilidad de los resultados de la calibración.

método de mínimos cuadrados no lineal

Este es aún más importante, y la maestra dio un PPT especial para hablar de ello...

Hay demasiadas cosas relacionadas con él, lo cual es normal.

Primero, hablemos de los conceptos básicos:

El método de mínimos cuadrados es un método de estimación de parámetros comúnmente utilizado para ajustar datos y encontrar la curva de mejor ajuste. Su objetivo es encontrar una combinación óptima de parámetros minimizando la suma de los residuos cuadrados entre los valores observados y los valores ajustados.

En el método de mínimos cuadrados, asumimos que existe una relación lineal entre los valores observados y los valores ajustados. Supongamos que tenemos un conjunto de observaciones, donde cada observación consta de una variable independiente (normalmente denominada x) y una variable dependiente (normalmente denominada y). Queremos describir la relación entre la variable independiente y la variable dependiente ajustando una línea recta (o más generalmente una curva).

La idea básica del método de mínimos cuadrados es minimizar la suma de los residuos al cuadrado entre el valor ajustado y el valor observado ajustando la pendiente y la intersección de la línea recta (o curva). El residual es la diferencia entre el valor observado y el valor ajustado, generalmente medido con el método de mínimos cuadrados como la suma de errores al cuadrado. Al minimizar la suma de errores cuadrados, podemos obtener la curva de mejor ajuste que minimice la diferencia entre los valores observados y los valores ajustados.

Resolver el método de mínimos cuadrados generalmente implica resolver un problema de optimización que minimiza una función objetivo. Para problemas de regresión lineal, el método de mínimos cuadrados puede resolver directamente las estimaciones de parámetros óptimos. Para problemas de regresión no lineal, los mínimos cuadrados a menudo requieren el uso de algoritmos iterativos (como el descenso de gradiente) para optimizar gradualmente las estimaciones de los parámetros.

El método de mínimos cuadrados se utiliza ampliamente en estadística, economía, ingeniería y otros campos para ajustar datos, análisis de regresión, estimación de parámetros, etc. Es un método simple pero poderoso para extraer información sobre las relaciones entre variables de los datos y se utiliza para predicción e inferencia.

En primer lugar, sabemos que una de las funciones del método de mínimos cuadrados es encontrar el mínimo local de una función. Luego también sabemos que en muchas situaciones (o más bien en todas las situaciones) en visión por computadora, usamos matrices, por lo que nuestra parte involucra matrices. Solicitando orientación:

Consideramos una función F(x) donde x es un vector n-dimensional. Suponiendo que F(x) es diferenciable (es decir, tiene primeras derivadas parciales) y suficientemente suave, podemos aproximar la función F(x) usando una expansión de Taylor.

La expansión de Taylor es un método para aproximar una función con polinomios cerca de un punto determinado. Para F(x), podemos usar la expansión de Taylor para aproximarlo como:

F(x + h) ≈ F(x) + ∇F(x)⋅h + 1/2 hᵀH(x)h

donde ∇F(x) es el vector gradiente de F(x), H(x) es la matriz de Hesse de F(x) y h es un vector n-dimensional.

En la expansión anterior, el primer término F(x) es el valor de la función en el punto x, el segundo término ∇F(x)⋅h es el producto escalar entre el gradiente de la función en el punto x y el vector h, y el término 1/2 hᵀH(x)h es la forma cuadrática de la función entre la matriz de Hesse en el punto x y el vector h.

El propósito de esta expansión de Taylor es facilitar el análisis y los cálculos alrededor de un punto dado aproximando la función F(x) como un polinomio. Los términos de orden superior en la expansión pueden proporcionar más información sobre la curvatura y la tasa de cambio de la función.

En aplicaciones prácticas, la expansión de Taylor se utiliza a menudo para aproximaciones locales y cálculos numéricos en problemas de optimización. Si es necesario, podemos interceptar parte de la expansión, como mantener solo el término de primer orden (aproximación lineal) o el término de segundo orden (aproximación cuadrática), para obtener un resultado de aproximación más simple o más preciso. Como se muestra abajo:

Esta es la llamada matriz de gradiente (primer orden) y la matriz de Hesse (segundo orden) (el (i, j)ésimo elemento de la matriz de Hesse es la derivada parcial de segundo orden de la función F (x) con respecto a las variables xᵢ y xⱼ)

De lo que estoy hablando aquí es en realidad muy simple: lo anterior es decir que si x es un punto de valor mínimo, entonces la primera derivada de este punto es 0. Lo siguiente es decir que el lugar donde la primera derivada es 0 es el punto estacionario de la función. Cabe señalar que el punto estacionario no es necesariamente el punto extremo, también puede ser el punto silla de la función u otro tipo de puntos estacionarios. Para determinar si un punto estacionario es un punto extremo, generalmente es necesario analizar más a fondo las propiedades de la matriz de Hesse, como el signo de los valores propios (qué pregunta de secundaria)

Entonces podemos sacar la segunda conclusión:

Teorema 2: Condiciones suficientes para el valor mínimo local
Supongamos que xs es un punto estacionario y F''(xs) es positivo definido, entonces xs es un punto mínimo local.
Si F''(xs) es definida negativa, entonces xs es un punto máximo local.
Si F''(xs) es indeterminado (es decir, hay valores propios positivos y negativos), entonces xs es un punto silla.

De acuerdo con la condición suficiente del Teorema 2, cuando en un punto estacionario xs, las propiedades de la matriz de Hesse F(xs) satisfacen condiciones específicas, podemos determinar que xs es un punto mínimo local o un punto de valor máximo local o punto de silla.

Si la matriz de Hesse F (xs) es definida positiva, lo que significa que todos sus valores propios son positivos, entonces xs es un punto mínimo local. En este caso, la segunda derivada de la función F en xs es positiva, lo que indica que la curvatura de la función es hacia arriba y la función asume una forma cóncava cerca de xs, por lo que xs es un punto mínimo local.

Si la matriz de Hesse F (xs) es definida negativa, lo que significa que todos sus valores propios son negativos, entonces xs es un punto máximo local. En este caso, la segunda derivada de la función F en xs es negativa, lo que indica que la curvatura de la función es hacia abajo y la función asume una forma convexa cerca de xs, por lo que xs es un punto máximo local.

Si la matriz de Hesse F(xs) es indeterminada, es decir, tiene valores propios tanto positivos como negativos, entonces xs es un punto silla. En este caso, la segunda derivada de la función F en xs tiene valores tanto positivos como negativos, lo que indica que la función tiene una forma inconsistente en diferentes direcciones, por lo que xs es un punto de silla.

Hagamos un pequeño consejo aquí:"

En álgebra lineal, definido positivo y definido negativo son términos utilizados para describir las propiedades de los valores propios de una matriz.

1. Matriz definida positiva: Se dice que una matriz simétrica A es definida positiva si para cualquier vector x distinto de cero, hay x^T A x > 0, donde x^T representa la transpuesta del vector x. En otras palabras, todos los valores propios de una matriz definida positiva son positivos.

2. Matriz definida negativa: se dice que una matriz simétrica A es definida negativa si para cualquier vector x distinto de cero, x^T A x <0. En otras palabras, todos los valores propios de una matriz definida negativa son negativos.

Los conceptos de definida positiva y negativa se pueden generalizar al caso de matrices asimétricas, pero en los teoremas se suele mencionar el caso de matrices simétricas porque la matriz de Hesse es una matriz simétrica.

En el teorema 2, cuando la matriz de Hesse F (xs) es definida positiva, significa que todos sus valores propios son positivos, lo que indica que la función exhibe una forma cóncava en xs, por lo que xs es un punto de valor mínimo local. En cambio, cuando la matriz de Hesse es definida negativa, todos sus valores propios son negativos, lo que indica que la función adopta una forma convexa en xs y por tanto xs es un punto máximo local.

Cabe señalar que la definición positiva y la definición negativa son propiedades de la forma cuadrática y están relacionadas con las propiedades cóncavas y convexas de la función. En los problemas de optimización, las matrices de Hesse definidas positivas y negativas se utilizan a menudo como condiciones para juzgar los puntos extremos locales.

"

Entonces, ¿cómo conseguimos estos puntos mágicos? Aquí utilizaremos varios métodos de descenso:

Dios mío, parece que tenemos una tercera definición, que es el clásico descenso en gradiente (), la dirección de descenso más rápida.

Luego, tenemos varios métodos específicos, algunos son de dos pasos y otros de un solo paso:

Los métodos de dos fases son un marco de algoritmo general. El siguiente es un ejemplo de un marco de algoritmo llamado "Método de descenso de 2 fases":

A través de este marco general se pueden implementar diferentes métodos de descenso en 2 etapas. Específicamente, la primera etapa se usa generalmente para determinar una dirección de descenso adecuada, mientras que la segunda etapa se usa para descender iterativamente hasta la solución óptima.

Entonces, el primer método del que hablaremos es el método de descenso de gradiente más rápido:

Cabe señalar que no existe un criterio de terminación claro en el marco del algoritmo de descenso de gradiente más rápido, por lo que en aplicaciones prácticas, se pueden agregar condiciones de terminación apropiadas según sea necesario, como alcanzar una cierta precisión de error o un límite superior en el número de iteraciones. Además, se pueden realizar algunas mejoras en función de las características del problema, como utilizar estrategias dinámicas de ajuste del tamaño del paso, agregar términos de regularización, etc.

El segundo método es el método de Newton:
El método de Newton es un algoritmo iterativo utilizado para resolver problemas de optimización o raíces de ecuaciones. Utiliza la información derivada de segundo orden de la función para aproximar las características locales de la función y converger más rápidamente a la solución óptima o la raíz de la ecuación.

Los siguientes son los pasos detallados del método de Newton:

Entrada: solución inicial x0, criterio de terminación, número máximo de iteraciones

1. Establezca el contador de iteraciones k = 0 y resuelva x = x0

2. Repita los siguientes pasos hasta alcanzar el número máximo de iteraciones y no se cumpla el criterio de terminación:

   2.1 Calcule el valor de la función f(x) y el valor de la primera derivada g(x) de la solución actual: f(xk) y gk = ∇f(xk)

   2.2 Calcular el valor de la segunda derivada H(x) de la solución actual: Hk = ∇²f(xk)
   
   2.3 Resolver el sistema de ecuaciones lineales Hk * dk = -gk, donde dk es la dirección de Newton
   
   2.4 Actualizar solución: x = x + dk
   
   2.5 Aumentar el contador de iteraciones: k = k + 1
   
   2.6 Verifique el criterio de terminación; si se cumple, detenga la iteración; de lo contrario, regrese al paso 2 para continuar con la iteración

3. Devolver la solución final x

La idea central del método de Newton es utilizar la segunda derivada de la solución actual (matriz de Hesse) para aproximar las características locales de la función y resolver el sistema de ecuaciones lineales para obtener la dirección descendente. Debido a que el método de Newton utiliza información derivada de segundo orden, generalmente converge más rápido a la solución óptima. Sin embargo, el método de Newton también tiene algunas limitaciones, como el mayor costo de calcular y almacenar derivadas de segundo orden y problemas de estabilidad numérica que pueden surgir en algunos casos.

En aplicaciones prácticas, el método de Newton se puede utilizar para la minimización de problemas de optimización, donde el objetivo es minimizar una función diferenciable. Además, el método de Newton también se puede utilizar para resolver las raíces de ecuaciones no lineales, donde el objetivo es encontrar los ceros de la función.

Cabe señalar que en aplicaciones prácticas, para mejorar la estabilidad numérica y la convergencia, se suelen utilizar variantes del método de Newton, como el método de Newton mejorado (como el método cuasi-Newton) o una versión truncada del método de Newton (como LM algoritmo). Estos métodos variantes se mejoran y optimizan según el método de Newton para superar algunos problemas potenciales.

Luego está el método de un solo paso, que en realidad es el método de amortiguación y el método del modelo más confiable:

Los métodos amortiguados y los métodos de región de confianza son dos algoritmos de optimización comúnmente utilizados para resolver problemas de optimización no lineal. Todos realizan optimización basada en modelos aproximados, pero utilizan diferentes estrategias para controlar el tamaño del paso de iteración y la dirección de actualización.

1.Métodos amortiguados:
El método de amortiguación limita el tamaño del paso de cada iteración introduciendo un factor de amortiguación para evitar pasos excesivos durante el proceso de iteración. El tamaño del paso hace que el algoritmo ser inestable. El factor de amortiguación puede ser una constante fija o ajustarse dinámicamente en función de las condiciones durante la iteración.

Los pasos específicos son los siguientes:
- Calcular el valor de la función f(x) y el valor de la primera derivada g(x) de la solución actual.
- Calcula el modelo aproximado L(x+h).
: compara el modelo aproximado L(x+h) con el valor de la función f(x) de la solución actual para determinar si se acepta la actualización.
- Si se acepta la actualización, actualice la solución: x = x + h; en caso contrario, ajuste el factor de amortiguación y recalcule el modelo aproximado L(x+h), y continúe la iteración.

El método de amortiguación tiene la ventaja de ser relativamente simple y fácil de implementar, pero puede resultar en una convergencia más lenta.

2. Métodos de región de confianza:
El método del modelo de confianza limita el tamaño del paso de iteración definiendo una región de confianza en cada iteración y basándose en la calidad del modelo dentro del dominio de confianza. se utiliza para decidir si se aceptan actualizaciones. La región de confianza es una región definida alrededor de la solución actual donde el modelo se comporta de manera relativamente consistente con la función verdadera.

Los pasos específicos son los siguientes:
- Calcular el valor de la función f(x) y el valor de la primera derivada g(x) de la solución actual.
- Construya un modelo aproximado L(x+h).
: resuelva el subproblema dentro del dominio de confianza y determine el tamaño de paso de actualización óptimo dentro del dominio de confianza.
: actualiza la solución según la solución del subproblema y el rango de regiones de confianza.
: ajuste el tamaño del dominio de confianza en función de las actualizaciones y mejoras reales en el modelo aproximado.

La ventaja del método del modelo de confianza es que puede controlar de manera más flexible el tamaño del paso de iteración y realizar ajustes adaptativos basados ​​en la calidad del modelo aproximado en cada iteración. Sin embargo, la definición y el ajuste de los dominios de confianza pueden requerir más cálculos y ajustes de parámetros.

Cabe señalar que la implementación y los detalles del método de amortiguación específico y del método del modelo de confianza dependen del algoritmo de optimización específico y de los requisitos del problema. Estos métodos se pueden adaptar y mejorar caso por caso para lograr una mejor convergencia y rendimiento.

Después de hablar de esto, aquí está:

Algunos pequeños conceptos para resolver métodos no lineales:

Los problemas de mínimos cuadrados no lineales (Problemas de mínimos cuadrados no lineales) se refieren a problemas de optimización en forma de minimizar la suma de cuadrados de residuos, donde el residual es una función no lineal con respecto a parámetros desconocidos. Este tipo de problema existe ampliamente en muchas aplicaciones prácticas, como ajuste de curvas, estimación de parámetros, etc.

A continuación se ofrece una breve introducción a los métodos de optimización comúnmente utilizados en estos problemas:

1. Método de Gauss-Newton:

El método Gauss-Newton es un algoritmo iterativo que se utiliza para resolver problemas de mínimos cuadrados no lineales. Este algoritmo se aproxima al problema original linealizando la función residual y utiliza el método de mínimos cuadrados lineales para resolver la solución aproximada del problema linealizado. Luego, los parámetros desconocidos se actualizan iterativamente hasta que se cumple el criterio de convergencia.

Los siguientes son los pasos detallados del método Gauss-Newton:

1. Inicializar parámetros: elija estimaciones de parámetros iniciales, como establecer parámetros en vectores cero o realizar estimaciones basadas en conocimientos previos.

2. Proceso iterativo:
   a. Calcular el vector residual: Calcular el vector residual en función de la estimación del parámetro actual, que representa la diferencia entre el valor observado y el valor predicho por el modelo. .
   b.Calcular la matriz jacobiana: Calcular la matriz jacobiana de la función residual con respecto a los parámetros.Esta matriz describe las derivadas parciales de los residuales con respecto a los parámetros.
   c.Construya un sistema de ecuaciones lineales: De acuerdo con la matriz jacobiana, construya un sistema de ecuaciones lineales, en el que el vector residual sea el vector objetivo en el lado derecho.
   d.Resolver el sistema de ecuaciones lineales: Utilice el método de mínimos cuadrados lineales para resolver el sistema de ecuaciones lineales y obtener el vector incremental de actualizaciones de parámetros.
   e. Actualizar parámetros: actualice la estimación del parámetro a la estimación del parámetro actual más el vector delta.
   F. Verifique el criterio de convergencia: verifique si el tamaño del incremento del parámetro cumple con el criterio de convergencia. Si está satisfecho, detenga la iteración; de lo contrario, regrese al paso (a) para continuar la iteración.

La idea central del método Gauss-Newton es aproximar el problema original linealizando la función residual y convertir el problema de mínimos cuadrados no lineal en un problema de mínimos cuadrados lineal. En cada iteración, utiliza la matriz jacobiana para describir la tasa de cambio de los residuos con respecto a los parámetros y actualiza las estimaciones de los parámetros en función de la solución del sistema lineal de ecuaciones. Al actualizar los parámetros de forma iterativa, el método de Gauss-Newton optimiza gradualmente los parámetros de modo que los residuos disminuyen gradualmente, logrando así el objetivo de minimizar la suma de los cuadrados de los residuos.

Cabe señalar que el método de Gauss-Newton es muy sensible a la elección de los parámetros iniciales y diferentes valores iniciales pueden conducir a resultados diferentes. Además, cuando las estimaciones de los parámetros están lejos de la solución óptima, la linealización puede introducir grandes errores, lo que hace que el algoritmo no converja o converja a la solución óptima local. Por lo tanto, en aplicaciones prácticas, es necesario seleccionar cuidadosamente los parámetros iniciales y realizar juicios de criterios de convergencia adecuados para obtener resultados confiables.

2. Método Levenberg-Marquardt:

El método Levenberg-Marquardt es un algoritmo iterativo que se utiliza para resolver problemas de mínimos cuadrados no lineales. Combina las ideas del método de Gauss-Newton y el método de minimización de la región de confianza, con el objetivo de equilibrar las ventajas de estos dos métodos y mejorar la estabilidad del algoritmo.

A continuación se detallan los pasos del método Levenberg-Marquardt:

1. Inicializar parámetros: elija estimaciones de parámetros iniciales, como establecer parámetros en vectores cero o realizar estimaciones basadas en conocimientos previos.

2. Establezca el factor de amortiguación inicial: elija un número positivo pequeño como factor de amortiguación inicial para controlar el tamaño del paso de actualización de parámetros. Normalmente, el factor de amortiguación inicial se puede establecer en un valor menor, como 0,01.

3. Proceso iterativo:
   a. Calcular el vector residual: Calcular el vector residual en función de la estimación del parámetro actual, que representa la diferencia entre el valor observado y el valor predicho por el modelo. .
   b.Calcular la matriz jacobiana: Calcular la matriz jacobiana de la función residual con respecto a los parámetros.Esta matriz describe las derivadas parciales de los residuales con respecto a los parámetros.
   c.Construya una matriz aumentada: construya una matriz aumentada basada en la matriz jacobiana y el vector residual, donde el vector residual es el vector objetivo en el lado derecho.
   d.Ajustar el factor de amortiguación: Calcule el factor de amortiguación ajustado en función del factor de amortiguación actual y la matriz aumentada. Este proceso de ajuste tiene como objetivo equilibrar las compensaciones entre el método de Gauss-Newton y el método de minimización de la región de confianza. Si la matriz aumentada es numéricamente aproximadamente positiva definida, el factor de amortiguación se puede mantener pequeño; de lo contrario, se puede aumentar el valor del factor de amortiguación.
   e.Resolver el sistema de ecuaciones lineales: Utilice el factor de amortiguamiento ajustado para resolver el sistema de ecuaciones lineales de la matriz aumentada para obtener el vector incremental de actualizaciones de parámetros.
   f. Actualizar parámetros: actualice la estimación del parámetro a la estimación del parámetro actual más el vector delta.
   g. Verifique el criterio de convergencia: verifique si el tamaño del incremento del parámetro cumple con el criterio de convergencia. Si está satisfecho, detenga la iteración; de lo contrario, regrese al paso (a) para continuar la iteración.

El método Levenberg-Marquardt controla el tamaño del paso de actualización de parámetros mediante la introducción de un factor de amortiguación y ajusta dinámicamente el tamaño del factor de amortiguación de acuerdo con las características de la matriz aumentada. Cuando la matriz aumentada es aproximadamente positiva definida, el factor de amortiguación se puede mantener pequeño, acercando el algoritmo al método de Gauss-Newton; y cuando la matriz aumentada no es positiva definida, aumentar el valor del factor de amortiguación puede mejorar la estabilidad del algoritmo y hacerlo más preciso Minimización cercana del método de la región de confianza.

La ventaja del método de Levenberg-Marquardt sobre el método de Gauss-Newton es que aún puede mantener una mejor convergencia cuando las estimaciones de los parámetros están lejos de la solución óptima. Puede manejar la situación de grandes pasos de actualización de parámetros y es menos sensible a la selección de parámetros iniciales. Sin embargo, el método de Levenberg-Marquardt es computacionalmente costoso porque requiere resolver un sistema de ecuaciones lineales de matriz aumentada.

En aplicaciones prácticas, el método Levenberg-Marquardt se utiliza a menudo para resolver problemas de mínimos cuadrados no lineales, especialmente cuando las estimaciones de los parámetros están lejos de la solución óptima, hay grandes residuos o hay mucho ruido. Tiene amplias aplicaciones en muchos campos científicos y de ingeniería, como visión por computadora, aprendizaje automático, procesamiento de señales y problemas de optimización, etc.

3. Método de la pata de perro de Powell:

El método Dog Leg de Powell es un algoritmo iterativo que se utiliza para resolver problemas de optimización sin restricciones. Fue propuesto por Powell en 1964 y tiene como objetivo encontrar el mínimo local de una función.

Estos son los pasos detallados para el método dog-leg de Powell:

1. Inicializar parámetros: elija estimaciones de parámetros iniciales, como establecer parámetros en vectores cero o realizar estimaciones basadas en conocimientos previos.

2.Proceso iterativo:
   a.Calcular gradiente negativo: Calcule el vector de gradiente negativo en la estimación del parámetro actual, indicando la dirección descendente de la función en ese punto.
   b.Calcule la matriz de Hesse: calcule la matriz de Hesse en la estimación del parámetro actual, que se utiliza para describir la información derivada de segundo orden de la función.
   c. Tamaño del paso del juicio: basándose en el gradiente negativo y la matriz de Hesse, juzgue si se puede alcanzar la solución óptima en un paso a lo largo de la dirección del gradiente negativo. Si es posible, calcule el tamaño de paso óptimo y actualice las estimaciones de los parámetros; de lo contrario, continúe con el siguiente paso.
   d.Calcule la longitud del paso de la pata de perro: cuando no se puede alcanzar la solución óptima dando un paso a lo largo de la dirección del gradiente negativo, calcule la longitud del paso de la pata de perro. El paso dogleg es un paso entre el paso del método de descenso más pronunciado y el paso del método Newton, con el objetivo de combinar las ventajas de ambos.
   e. Actualizar parámetros: actualiza las estimaciones de parámetros según el tamaño del paso dogleg calculado.
   F. Verifique el criterio de convergencia: Verifique si los cambios en los parámetros cumplen con el criterio de convergencia. Si está satisfecho, detenga la iteración; de lo contrario, regrese al paso (a) para continuar la iteración.

El método del dog-leg de Powell combina ideas del método del descenso más pronunciado y el método de Newton. Cuando la dirección del gradiente negativo puede apuntar directamente a la solución óptima, se utiliza el tamaño de paso del método de descenso más pronunciado; cuando la dirección del gradiente negativo ya no es aplicable, se utiliza el tamaño de paso del método de Newton. Al utilizar de manera integral estos dos tamaños de paso, el método dog-leg puede acercarse a la solución óptima más rápidamente durante el proceso de iteración.

Cabe señalar que el método del dog-leg de Powell requiere el cálculo de la matriz de Hesse, y la matriz de Hesse es computacionalmente costosa, especialmente cuando hay muchos parámetros. Por lo tanto, en aplicaciones prácticas, para reducir la complejidad computacional, generalmente se usa la matriz de Hesse aproximada u otros métodos alternativos para estimar el tamaño del paso.

El método dog-leg de Powell tiene buena convergencia y convergencia global en problemas de optimización sin restricciones. Se utiliza ampliamente en problemas de optimización, especialmente cuando es necesario resolver problemas de alta dimensión o problemas con estructuras no lineales complejas.

Bien, ha llegado el momento de nuestro pequeño consejo otra vez: "

¿Qué es exactamente la función residual del vector residual?

En matemáticas y problemas de optimización, una función residual es una función que describe la diferencia entre las observaciones reales y las predicciones del modelo. En los problemas de mínimos cuadrados, la función residual generalmente se refiere a la suma de cuadrados de las diferencias entre los valores observados y los valores predichos del modelo.

Supongamos que tenemos un conjunto de observaciones, donde cada observación consta de una variable independiente y una variable dependiente. Usamos un modelo para predecir el valor de la variable dependiente. La función residual mide la diferencia entre el valor predicho y el valor observado real para cada observación.

El vector residual de la función residual es un vector en el que cada elemento representa el residual de la observación correspondiente. Suponiendo que hay n observaciones, la longitud del vector residual es n.

Tomando como ejemplo el problema de mínimos cuadrados, supongamos que hay n datos de observación (x_i, y_i), donde x_i es la variable independiente e y_i es la variable dependiente. Usamos un modelo para predecir el valor de la variable dependiente, denotado f(x_i;θ), donde θ es un parámetro del modelo. Entonces la función residual se puede definir como:

R(θ) = [y_1 - f(x_1;θ), y_2 - f(x_2;θ), ..., y_n - f(x_n;θ)]

Aquí R (θ) representa el vector residual, donde cada elemento es el residual de la observación correspondiente. Nuestro objetivo es minimizar la norma (generalmente la suma de cuadrados) del vector residual ajustando el parámetro θ.

En el problema de mínimos cuadrados, esperamos encontrar una estimación óptima del parámetro θ* que minimice la norma del vector residual:

θ* = argmín ||R(θ)||^2

Al minimizar la suma de cuadrados del vector residual, podemos encontrar estimaciones de parámetros óptimas que minimizan la diferencia entre los valores predichos del modelo y los valores observados.

Las funciones residuales y los vectores residuales se utilizan ampliamente en muchos problemas de optimización y ajuste, como el ajuste de mínimos cuadrados no lineal, el análisis de regresión y las funciones de pérdida en el aprendizaje automático.

"

Estos métodos son métodos de optimización específicos para problemas de mínimos cuadrados no lineales y se utilizan para resolver la estimación de parámetros, el ajuste de curvas y otras aplicaciones. Cada método tiene sus propias ventajas y ámbito de aplicación, y la elección de qué método depende de la naturaleza y los requisitos del problema. En aplicaciones prácticas, estos métodos también se pueden optimizar y mejorar según circunstancias específicas para mejorar la convergencia y el rendimiento.

Generación a vista de pájaro

Parece que la profesora aún no ha hablado de eso... Lo actualizaré más tarde.

Supongo que te gusta

Origin blog.csdn.net/m0_73872315/article/details/134757918
Recomendado
Clasificación